33

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

Когда я использую FragmentActivity, панель действий отображается на моем телефоне (API18), но с ActionBarActivity она отображается как optionmenu, нажимая кнопку меню.

На эмуляторе с API7 панель действий всегда отображается в виде меню параметров.

Любые идеи?

ответ

70

Используйте 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> 
6

Относящиеся к a duplicate that points to this post, у меня была проблема, делая мои кнопки появляются в качестве элементов действий вместо элементов переполнения, несмотря на наличие showAsAction установлен в always. Мне удалось усилить его, расширив мою деятельность с Activity вместо ActionBarActivity. Согласно this answer, это приемлемо, если вам не нужно поддерживать уровень API ниже 11.

...extends ActionBarActivity:

extends ActionBarActivity

...extends Activity:

enter image description here

0

Я отладки с Doogee Valencia Y100Pro, а меню «три маленьких квадрата» не видно, но когда я расширил свою MainActivity с помощью android.support.v7.app.ActionBarActivity, тогда я получаю меню текста/значка в панели действий. Следующий screenshot и 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> 
Смежные вопросы