Как управлять разделением ActionBar программно? - PullRequest
23 голосов
/ 25 ноября 2011

Android ActionBar может разделиться на верхнюю и нижнюю полосы, если для параметра активности "uiOptions" установлено значение "splitActionBarWhenNarrow", обратите внимание, что этот параметр действителен только в ICS.

Honeycomb представила новый подход к множественному выбору элементов списка с помощью панели действий. Когда элемент находится под нажатием и удерживанием, список переходит в режим множественного выбора, и панель действий может использоваться для выполнения некоторых действий. Настройка панели действий унаследована от действия списка, т. Е. Если у действия есть панель действий с разделением, то у мультиселекции тоже будет выбор, а если у действия есть только верхняя панель, то с этим будет соответствовать несколько вариантов.

Вопрос в том, возможно ли иметь только верхнюю панель действий в упражнении, и когда список переходит в режим множественного выбора, программно разделяется панель действий?

Спасибо!

Ответы [ 5 ]

26 голосов
/ 26 ноября 2011

Нет, вы не можете переключаться между панелями действий с разделением и без разделения на лету.

Аналог установщика для android:uiOptions включен Window, а не Activity.Window#setUiOptions - метод и используемый флаг: ActivityInfo#UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW.

Однако это не будет делать то, что вы хотите.Разделить панель действий, когда указывается узкое значение, поскольку окно сначала настраивается до инициализации оформления окна.Другими словами, после отображения окна (или даже после того, как вы позвонили setContentView), уже слишком поздно его менять.

Это было сознательное решение команды Android UX.Режимы действий (включая режимы выбора) предназначены для отражения конфигурации панели действий на текущем действии.Это дает пользователю единственное место для поиска действительных в настоящее время действий в рамках одного и того же действия.

2 голосов
/ 25 ноября 2011

Я не верю в это.В Activity я не вижу ничего, что могло бы послужить аналогом для android:uiOptions.

1 голос
/ 14 ноября 2014

Пакет AppCompat теперь предлагает виджет «Панель инструментов», который позволяет вам поместить панель действий в любое место в макете и изменить ее, как и любой другой вид.

См. Полную документацию здесь и руководство здесь .

0 голосов
/ 03 марта 2015

Вы можете использовать две панели инструментов.Взгляните на эти вопросы:

AppCompat v7: разбита панель действий с разделением 21?

Как центрировать меню действий на панели инструментов

0 голосов
/ 07 февраля 2014

Можете ли вы попытаться установить getWindow().setUiOptions(ActivityInfo.UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW) в Activity, который вы хотите, чтобы ActionBar показывал как разделенное прямо перед onCreate(), затем скрыть его с помощью getActionBar.hide() и в действии списка, которое вы хотите сделатьон выскочил обратно, используя getActionBar.show().

Я попытался (но не с помощью библиотек поддержки), показывая ActionBar в одном Activity и разделить в другом, используя приведенное выше, и смог скрыть и показатьразделить на нажатие кнопки.Надеюсь это поможет.Дайте мне знать, если это так или нет.Удачного кодирования.:)

...