Панель действий - опция ifRoom, оставляющая слишком много места
У меня проблема с панелью действий, я попытался настроить для нее вид поиска, чтобы панель поиска была расширяемой.
Это хорошо, за исключением того, что мне пришлось установить все остальные пункты меню с опцией ifRoom
чтобы поле поиска заняло всю комнату при нажатии на значок поиска.
Эта часть также работала хорошо, за исключением того факта, что слишком много пунктов меню было перенесено в переполнение меню, только 2 значка остались на вертикальном экране (включая панель поиска).
Я провел еще один тест с другим заданием, имеющим 5 пунктов меню:
- В первом случае я установил их все
android:showAsAction="always"
- Во втором случае я установил их все с помощью ``android:showAsAction="ifRoom"`
Вот результаты:
Случай 1:
Случай 2:
Почему если я использую ifRoom
, только 2 иконки отображаются в то время как на самом деле 5 могли бы легко заполнить место?
Из-за этого у меня есть только один элемент меню, кроме моего элемента поиска...
Спасибо!
3 ответа
Похоже, это дизайнерское решение:
Джейк Уортон говорит:
Когда он содержится в панели действий, конечный максимум элементов действий зависит от ширины устройства, не зависящей от плотности. Элементы действий также не могут покрывать более половины ширины панели действий.
В файле XML вы можете запросить MenuItem
появиться как элемент действия, объявив android:showAsAction="ifRoom"
для <item>
элемент. Таким образом, MenuItem
появляется в ActionBar
для быстрого доступа только при наличии свободных мест. Если места недостаточно, элемент появляется в меню переполнения.
так что вы ответите:
используйте "ifRoom", чтобы запросить отображение элемента на панели действий, но позвольте системе переместить его в меню переполнения, когда недостаточно места (когда пространство ограничено на экранах меньшего размера).
Ты можешь использовать android:showAsAction="always"
показать все меню в ActionBar
,
Максимум значков для опции "ifRoom" составляет 5 (пять), даже когда я перешел на свой планшет с диагональю экрана 100 дюймов:-) и отчаянно повернул его в альбомной ориентации, см. Ссылку из ответа Джейка Уортона (Спасибо!) http://developer.android.com/design/patterns/actionbar.html