Панель действий не отображается с AppCompat
Я перенесу свое приложение в API7 с помощью AppCompat и у меня возникла проблема с панелью действий.
Когда я использую FragmentActivity
панель действий отображается на моем телефоне (API18), но с ActionBarActivity
он отображается как опциональное меню при нажатии кнопки меню.
В эмуляторе с API7 панель действий всегда отображается в виде меню опций.
Есть идеи?
3 ответа
Используйте пространство имен compat для таких пунктов меню, как это:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:compat="http://schemas.android.com/apk/res-auto" >
<item android:id="@+id/action_whatever"
android:icon="@drawable/ic_action_whatever"
android:title="@string/whatever"
compat:showAsAction="ifRoom" />
</menu>
В связи с дубликатом, указывающим на этот пост, у меня возникли проблемы с отображением кнопок в качестве элементов действия вместо элементов переполнения, несмотря на то, что для showAsAction было установлено значение always
, Мне удалось заставить его расширить свою деятельность с Activity
вместо ActionBarActivity
, Согласно этому ответу, это приемлемо, если вам не нужно поддерживать уровни API ниже 11.
...extends ActionBarActivity
:
...extends Activity
:
Я отлаживаю с помощью Doogee Valencia Y100Pro, и меню "три маленьких квадрата" не отображается, но когда я расширил свою MainActivity с android.support.v7.app.ActionBarActivity
, затем я получаю текст / значок меню в панели действий. Следующий скриншот и menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_update"
android:icon="@drawable/ic_refresh"
android:title="@string/action_update"
app:showAsAction="always"/>
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
app:showAsAction="ifRoom"/>
</menu>