Есть ли стандартный способ добавления разделителей между элементами панели действий в Android 3.0?

У меня есть небольшая проблема, пытаясь настроить внешний вид панели действий в моем приложении. Я хочу иметь широкие разделители пикселей для группировки элементов панели действий, которые вы видите во многих родных приложениях (например, Gmail, Календарь). Я нашел способ сделать это, добавив пункт меню и установив атрибут "android: actionLayout" в пользовательский макет для разделителя:

<View
  android:background="@color/LightGray"
  android:layout_marginTop="5dip"
  android:layout_marginBottom="5dip"
  android:layout_width="1dip"
  android:layout_height="fill_parent" />

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

Итак, я думаю, что я спрашиваю, есть ли стандартный способ добавления разделителей элементов без использования элемента меню с пользовательским представлением и таким образом, который не учитывается в лимитах для элементов панели действий

Спасибо заранее!

Ответы

Ответ 1

Я бы не стал пытаться использовать разделители в местах, которые система не добавляет их автоматически, так как это сделает ваше приложение несовместимым с платформой. По умолчанию:

  • Разделитель между переполнением и другими.
  • Разделите текст и другой элемент, где он будет рассортировать элемент, к которому принадлежит текст.

Ответ 2

Я не мог найти стандартный способ, но так, как я это делал, это использовать свойство android:actionLayout для элемента меню, и я помещаю туда разделитель.

Ответ 3

Когда Google выпустил 3.0 SDK, я получил быстрое демонстрационное приложение, чтобы посмотреть, как работает ActionBar, и просто оглядываясь на него, если я использую текстовые элементы без ярлыков значков, тогда я получаю автоматические разделители.

Мой файл menu.xml выглядит следующим образом:

<menu xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:id="@+id/menu_text" android:showAsAction="ifRoom" android:title="@string/action_label_text" />
  <item android:id="@+id/menu_text" android:showAsAction="ifRoom" android:title="@string/action_label_text" />
  <item android:id="@+id/menu_text" android:showAsAction="ifRoom" android:title="@string/action_label_text" />
  <item android:id="@+id/menu_text" android:showAsAction="ifRoom" android:title="@string/action_label_text" />
</menu>

Возможно, это не будет работать с значками

Или думая об этом, возможно, размер значка имеет эффект?