2013-05-27 14 views
14

Mam problem na pasku akcji, próbowałem ustawić na nim search view, aby można było rozwinąć pasek wyszukiwania.Pasek czynności - jeśli opcjaRoom zostawia zbyt dużo miejsca

To dobrze, oprócz tego, że musiałem ustawić wszystkie pozostałe pozycje menu za pomocą opcji ifRoom, aby pole wyszukiwania zajęło cały pokój po kliknięciu ikony wyszukiwania.

Ta część działała również dobrze, z wyjątkiem faktu, że zbyt wiele pozycji menu zostało przesuniętych do menu przepełnienia, tylko 2 ikony pozostały na pionowym ekranie (w tym na pasku wyszukiwania).

zrobiłem kolejny test na innej działalności mającej 5 elementów menu:

  1. W pierwszym przypadku, ustawić wszystkie z nich android:showAsAction="always"
  2. W drugim przypadku, ustawić wszystkie z nich `` android: showAsAction = "ifRoom" `

Oto wyniki:

Przypadek 1:

always case

Przypadek 2:

ifRoom case

Dlaczego jeśli używam ifRoom tylko 2 ikony są wyświetlane podczas gdy faktycznie 5 można łatwo wypełnić miejsce?

Z tego powodu, mam tylko jedną pozycję menu dostępne przy moim wyszukiwanie Lista pozycji ...

Dzięki!

+0

Dlaczego, jeśli używam opcji "Wychodzę", wyświetlane są tylko dwie ikony? ----> http://stackoverflow.com/a/15832302/1168654 –

+0

Sprawdziłem twój link, ale to nie odpowiada na moje pytanie. Wiem, że jest to związane z rozmiarem ekranu, ale tutaj mam na przykład wystarczająco dużo miejsca na więcej niż 2 ikony. –

+0

W pliku XML możesz poprosić o element menu, który pojawi się jako element akcji, deklarując android: showAsAction = "ifRoom" dla elementu . W ten sposób element menu pojawi się na pasku akcji, aby uzyskać szybki dostęp tylko wtedy, gdy jest wolne miejsce. Jeśli nie ma wystarczającej ilości miejsca, element pojawia się w menu nadmiarowym. nadzieję, że rozumiecie. aby uzyskać więcej szczegółów, sprawdź: http://developer.android.com/guide/topics/ui/actionbar.html –

Odpowiedz

13

wygląda jak jego decyzję design:

Jake Wharton Says:

Kiedy zawarty w pasku akcji jest skończony maksymalnie elementów działań na podstawie gęstości niezależne od szerokości urządzenia .Elementy akcji nie mogą również zajmować więcej niż połowę szerokości paska czynności.

Od here.

+2

Dzięki, nie wiedziałem, że ten limit był na miejscu. Dowiedziałem się, że tutaj są szczegółowe przykłady i liczba wyświetlanych ikon: http://developer.android.com/design/patterns/actionbar.html –

0

W pliku XML można poprosić o wyświetlenie MenuItem jako elementu akcji poprzez zadeklarowanie android:showAsAction="ifRoom" dla elementu <item>. W ten sposób MenuItem pojawia się w ActionBar, aby uzyskać szybki dostęp tylko wtedy, gdy jest wolne miejsce. Jeśli nie ma wystarczającej ilości miejsca, element pojawia się w menu nadmiarowym.

więc odpowiedzieć brzmi:

użytkowania „ifRoom” żądania że pozycja pojawi się na pasku akcji, ale aby system mógł przenieść go do menu przepełnienia, gdy nie jest wystarczająco dużo miejsca (. gdy przestrzeń jest ograniczona na mniejszych ekranach).

Możesz użyć android:showAsAction="always", aby wyświetlić wszystkie menu w ActionBar.

+0

Dzięki, ale jak wyjaśniono powyżej, wolałbym, aby ikony były wyświetlane na widocznym pasku akcji, a nie w przepełnieniu, jeśli jest na to miejsce. –

+0

Wyjaśnię tutaj, ponieważ rozumiesz, dlaczego nie możemy wyświetlić wszystkich ikon w pasku zadań za pomocą ifroom. w zasadzie nie można tego zrobić za pomocą "ifroom" –

0

Maksymalna ikon dla opcji „ifRoom” wynosi 5 (pięć), nawet kiedy przeprowadziłem się do mojego 100-calowy ekran tabletu rozmiarze :-) i rozpaczliwie obrócić go na krajobraz patrz link z odpowiedzią Jake Wharton (Dziękuję!)

Powiązane problemy