2013-07-04 13 views
32

Ho implementato il mio viewgroup personale per la mia applicazione. L'uso di actionbar non è un'opzione per vari motivi, quindi nel mio viewgroup ho le mie "actionbar" una sopra e una in basso. L'immagine 1 illustra il mio layout corrente.Come rendere la barra del codice di azione contestuale sovrapporre il mio layout invece di "spingerlo" verso il basso

Image 1

Come potete vedere ci sono due edittexts nel layout e tutto sembra ok.

Tuttavia, quando l'utente seleziona del testo in uno qualsiasi degli editor grafici, viene visualizzata la barra del codice di azione contestuale. L'immagine 2 illustra questo.

Image 2

Quando questo accade bar actionmode "spinge" verso il basso tutto il mio layout al fine di ottenere il suo spazio. In tablet e altri dispositivi con schermi di grandi dimensioni, questo è OK ma in dispositivi più piccoli e in particolare con la tastiera morbida visibile, l'altezza rimanente è troppo piccola (l'orientamento orizzontale è inutilizzabile).

Quello che voglio fare è actionmode bar per sovrapporre il mio layout invece di spingere verso il basso come mostrato nella figura 3.

Image 3

è possibile?

risposta

49

Basta aggiungere <item name="android:windowActionModeOverlay">true</item> al tuo stile.

+2

O.M.G. Questo era del tipo "Come può qualcuno mancarlo?". Ha funzionato come un fascino, grazie mille !!! – Christos

+12

non ho lavorato per me. sto usando "Theme.AppCompat.Light.NoActionBar" e una barra degli strumenti – user987760

+1

In qualche modo non funziona anche per me. : S – Ewoks

0

Se si desidera che l'ActionBar di sovrapporre il contenuto ... aggiungere questo codice per gli stili

<item name="android:windowActionBarOverlay">true</item> 
+2

Basta ripetere la risposta un anno fa? – IlyaEremin

29

Per utilizzare windowActionModeOverlay con appcompat barra degli strumenti, utilizzare

<item name="windowActionModeOverlay">true</item> 

al vostro stile.

+1

Forse questa dovrebbe essere convertita nella risposta accettata. Non penso che AppCompat sia stato nemmeno una cosa quando ho pubblicato la risposta originale nel '13. – marijnvdwerf

1

Questo può essere fatto anche a livello di codice utilizzando:

getWindow().requestFeature(Window.FEATURE_ACTION_MODE_OVERLAY); 
Problemi correlati