2013-05-27 8 views
14

Ho un problema sulla mia barra delle azioni, ho provato a impostare uno search view su di esso al fine di ottenere una barra di ricerca espandibile.Barra delle azioni - opzione SeRoom lascia troppo spazio

Questo funziona bene, tranne il fatto che ho dovuto impostare tutte le altre voci di menu con l'opzione ifRoom per consentire al campo di ricerca di prendere tutta la stanza quando si fa clic sull'icona di ricerca.

Questa parte ha funzionato bene, tranne il fatto che troppe voci di menu sono state inserite nel menu di overflow, solo 2 icone sono rimaste sullo schermo verticale (inclusa la barra di ricerca).

ho fatto un altro test su un'altra attività con 5 voci di menu:

  1. Nel primo caso, ho impostato tutti con android:showAsAction="always"
  2. Nel secondo caso, ho impostato tutti con `` Android: showAsAction = "ifRoom" `

Ecco i risultati:

caso 1:

always case

Caso 2:

ifRoom case

Perché se uso ifRoom, solo 2 le icone sono visualizzate, mentre in realtà 5 potrebbe facilmente coprire il posto?

A causa di questo, ho solo una voce di menu disponibile accanto al mio Ricerca articoli vista ...

Grazie!

+0

Perché se uso ifRoom, vengono visualizzate solo 2 icone ?? ----> http://stackoverflow.com/a/15832302/1168654 –

+0

Ho controllato il tuo link, ma non risponde alla mia domanda. So che è legato alle dimensioni dello schermo, ma qui ho per esempio abbastanza spazio per più di 2 icone. –

+0

Nel file XML, è possibile richiedere una voce di menu per apparire come un'azione dichiarando android: showAsAction = "ifRoom" per l'elemento . In questo modo, la voce di menu viene visualizzata nella barra delle azioni per l'accesso rapido solo se c'è spazio disponibile. Se non c'è abbastanza spazio, l'elemento viene visualizzato nel menu di overflow. spero che tu capisca. per maggiori dettagli controlla questo: http://developer.android.com/guide/topics/ui/actionbar.html –

risposta

13

Sembra proprio una decisione di progettazione:

Jake Wharton dice:

Quando contenuta all'interno della barra delle azioni c'è un massimo finito di elementi di azione in base alla larghezza indipendenti dalla densità del dispositivo .Gli elementi di azione non possono coprire più della metà della larghezza dell'azione bar.

Da here.

+2

Grazie, non sapevo che questo limite fosse a posto. Ho scoperto che qui sono riportati alcuni esempi e il numero di icone visualizzate: http://developer.android.com/design/patterns/actionbar.html –

0

Nel file XML, è possibile richiedere a MenuItem di apparire come un'azione dichiarando android:showAsAction="ifRoom" per l'elemento <item>. In questo modo, lo MenuItem viene visualizzato nel ActionBar per l'accesso rapido solo se c'è spazio disponibile. Se non c'è abbastanza spazio, l'elemento viene visualizzato nel menu di overflow.

in modo da rispondere è:

uso "ifRoom" per richiedere che un elemento viene visualizzata nella barra delle azioni, ma consentono al sistema di spostarlo nel menu di overflow quando non c'è spazio sufficiente (. quando lo spazio è limitato su schermi più piccoli).

È possibile utilizzare android:showAsAction="always" per visualizzare tutti i menu in ActionBar.

+0

Grazie, ma come spiegato sopra, preferirei che le icone vengano visualizzate nella barra di azione visibile e non nell'overflow se c'è spazio disponibile per esso. –

+0

ho spiegato qui perché capisci perché non possiamo mostrare tutte le icone nella barra delle azioni usando ifroom. in genere non puoi farlo usando 'ifroom' –

0

Il massimo di icone per l'opzione "ifRoom" è 5 (cinque) anche quando mi sono spostato sul mio tablet da 100 pollici :-) e ruotarlo disperatamente sul paesaggio vedere il collegamento dalla risposta di Jake Wharton (Grazie!)

Problemi correlati