Come si imposta la modalità actionbar
in fase di esecuzione per non sovrapporre o sovrapporre con il contenuto in fase di esecuzione? Ho provato a utilizzare getWindow().requestFeature(Window.FEATURE_ACTIONBAR_OVERLAY)
ma non consente di impostare la modalità dopo aver chiamato setContentView()
. Questo può essere fatto, come ho visto farlo nell'app YouTube.Imposta la modalità di sovrapposizione della barra delle azioni in fase di esecuzione in Android
risposta
Anche se non è esattamente quello che stai cercando, una soluzione decente sarebbe creare una vista spaziale nella parte superiore del contenuto che è della stessa altezza di ActionBar (android: layout_height = "? Android: actionBarSize"). Quando si desidera attivare la modalità Sovrapposizione, impostare la visibilità dello spaziatore su View.GONE, quando lo si desidera disabilitare, impostarlo su View.VISIBLE.
Questo è sicuramente un work-around valido. La sovrapposizione di ActionBar è uno stile, e questi devono essere impostati prima che vengano mostrati e non cambino in fase di esecuzione, quindi è necessario un work-around. Un problema con questo lavoro è che ottenere l'altezza della barra delle azioni non è semplice come indicato nella risposta, devi 'getActionBar(). GetHeight()' dopo che è visibile perché la barra di azione "impilata" (pensa alle schede della barra delle azioni su un telefono in verticale) non è incluso in Android: actionBarSize e perché non conosciamo tutte le variabili utilizzate da Android per decidere se mostrare o meno una pila: ( – xbakesx
Grazie, ha funzionato nel mio caso – user3819810
Ciao Sowrabh, hai trovato qualche soluzione? – Wayne
Nessuna fortuna @Wayne. Il meglio che potrei fare è impostare la modalità di sovrapposizione della barra delle azioni su 'Window.FEATURE_ACTIONBAR_OVERLAY' sempre e quindi impostare la coordinata Y dell'intera vista nella parte inferiore della barra di azione quando necessario. Non è una soluzione molto pulita però –
Oh grazie, potrebbe essere una soluzione: D. Ma sarà bello se sappiamo come ha fatto Youtube: D – Wayne