Совместимость планшета Android
Является ли это возможным? На старых устройствах (до 3.0) элементы, которые не соответствуют панели действий, отображаются только при нажатии клавиши меню, я хочу, чтобы эти элементы были сгруппированы в меню переполнения панели действий.
Как заставить переполнение меню на Android-панели?
Ответ 1
Меню переполнения действия доступно только в том случае, если на устройстве нет жесткой кнопки меню. Я нашел это в разделе "Рамочные темы" в разделе "Пользовательский интерфейс" > "Панель действий", проверьте 3-й маркер здесь.
Существует библиотека действий, написанная Джейком Уортоном под названием ActionBarSherlock. Возможно, это может предоставить вам стиль меню переполнения действий, даже если на старых устройствах (включая жесткую кнопку меню), однако я не рассматривал это.
Изменить: ActionBarSherlock 4.0 (в настоящее время кандидат на выпуск) имеет встроенные функции для принудительного переполнения действий. Если вы хотите расширить пример ActionBarCompat самостоятельно, вы можете взглянуть на github, чтобы получить представление о том, как Джейк реализовал его. Я бы предложил просто изучить его библиотеку вместе, так как это очень хорошо сделано.
Если вы решите использовать библиотеку Jake, изучите настройку темы Activity как @style/Theme.Sherlock.ForceOverflow, чтобы заставить меню переполнения на более старых устройствах.
Edit2: Использование темы ForceOverflow
вызывает проблемы (пример № 1) на устройствах с аппаратной кнопкой меню, Таким образом, Джейк Уортон собирается удалить ForceOverflow
в будущих версиях.
Ответ 2
Хорошо, это просто, но сложно понять.
Сначала вам нужен элемент меню, который вы хотите использовать в качестве переполнения. Пример
<item
android:id="@+id/a_More"
android:icon="@drawable/more"
android:showAsAction="always"
android:title="More">
</item>
После того, как у вас есть элемент, добавьте подменю, содержащее ваши элементы, которые вы хотите в меню переполнения. Пример:
<item
android:id="@+id/a_More"
android:icon="@drawable/more"
android:showAsAction="always"
android:title="More">
<menu>
<item
android:id="@+id/aM_Home"
android:icon="@drawable/home"
android:title="Home"/>
</menu>
</item>
По щелчку это раздувает другие предметы внутри. Мое приложение использует ActionBarSherlock 4.0, поэтому прежде чем это будет работать для вас, вам нужно получить доступ к "SplitActionBar". (Будет по-прежнему работать на панели действий по умолчанию android)
Вот как: В вашем файле AndroidManifest.xml вам нужно добавить этот код под действие, в котором вы нуждаетесь в меню переполнения. Честно говоря, неважно, есть ли у вас раскол или нет, но я предпочитаю его.
android:uiOptions="splitActionBarWhenNarrow"
ПРИМЕЧАНИЕ. Ваш элемент, который раздувает меню переполнения, ДОЛЖЕН showAsAction="always"
Vwola! у вас есть меню переполнения! Надеюсь, я помог тебе.:)
Ответ 3
Следуя предложению LeviRockerSk8er, я заставил иметь меню переполнения в панели действий следующим образом:
Это код для "menu.xml":
<item
android:id="@+id/web_clasica"
android:icon="@drawable/ic_action_web_site"
android:showAsAction="ifRoom"
android:title="@string/menu_web"
/>
<item
android:id="@+id/overflow_fijo"
android:icon="@drawable/ic_action_core_overflow"
android:showAsAction="always"
android:title="@string/menu_email"
>
<menu>
<item
android:id="@+id/email"
android:icon="@drawable/ic_action_new_email"
android:showAsAction="ifRoom"
android:title="@string/menu_email"
/>
<item
android:id="@+id/share"
android:icon="@drawable/ic_action_share"
android:showAsAction="ifRoom"
android:title="@string/menu_share"
/>
<item
android:id="@+id/about"
android:showAsAction="ifRoom"
android:icon="@drawable/ic_action_action_about"
android:title="@string/menu_about"/>
</menu>