Recentemente ho sviluppato un'app per Android, in cui ho bisogno di avere un layout e una dimensione personalizzati per la barra delle schede. Il modo in cui l'ho fatto finora è utilizzando la libreria ActionBarSherlock di Jake Wharton per supportare versioni precedenti di HoneyComb Android e applicando uno stile all'app in cui modifico l'elemento di stile actionBarSize.Altezza della barra delle azioni di modifica su Android JellyBean
Ora, ho testato l'app sul Galaxy S3 (con Jellybean su di esso) e l'altezza della barra delle schede non cambia più in base al valore actionBarSize
.
Così ho iniziato a guardare attraverso il codice di Jellybean, e ho trovato questo metodo nella classe ActionBarPolicy
:
public int getTabContainerHeight() {
TypedArray a = mContext.obtainStyledAttributes(null, R.styleable.ActionBar,
com.android.internal.R.attr.actionBarStyle, 0);
int height = a.getLayoutDimension(R.styleable.ActionBar_height, 0);
Resources r = mContext.getResources();
if (!hasEmbeddedTabs()) {
// Stacked tabs; limit the height
height = Math.min(height,
r.getDimensionPixelSize(R.dimen.action_bar_stacked_max_height));
}
a.recycle();
return height;
}
Da quanto ho capito in questo metodo, sembra che Jellybean limita l'altezza del TabBar, quando l'app è in modalità verticale, impostando l'altezza della barra delle schede sul valore della dimensione "action_bar_stacked_max_height" (che è 48dp, nel file /values/dimen.xml
della 4.1), anche se ho impostato l'altezza della barra delle azioni in actionBarSize
.
Ho provato a sovrascrivere questo valore di dimensione, impostandolo sul mio valore nel mio file dimen.xml
, ma non ho avuto fortuna. Non ha funzionato.
La mia domanda:
Sei ragazzi sanno di un modo in cui posso ignorare il "action_bar_stacked_max_height" Valore dimen?
Grazie in anticipo!
Ho anche lo stesso problema. C'è qualche soluzione che hai trovato per questo? – user936414