Подтвердить что ты не робот

Как управлять программным разделом ActionBar программно?

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

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

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

Спасибо!

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

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