Панель действий - опция ifRoom, оставляющая слишком много места

У меня проблема с панелью действий, я попытался настроить для нее вид поиска, чтобы панель поиска была расширяемой.

Это хорошо, за исключением того, что мне пришлось установить все остальные пункты меню с опцией ifRoom чтобы поле поиска заняло всю комнату при нажатии на значок поиска.

Эта часть также работала хорошо, за исключением того факта, что слишком много пунктов меню было перенесено в переполнение меню, только 2 значка остались на вертикальном экране (включая панель поиска).

Я провел еще один тест с другим заданием, имеющим 5 пунктов меню:

  1. В первом случае я установил их все android:showAsAction="always"
  2. Во втором случае я установил их все с помощью ``android:showAsAction="ifRoom"`

Вот результаты:

Случай 1:

всегда бывает

Случай 2:

случай ifRoom

Почему если я использую 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

Другие вопросы по тегам