Пункты меню не отображаются в меню

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

enter image description here

но когда я запускаю приложение на своем телефоне значок (a png изображения) не видно, и есть много свободного места. Однако этот параметр "добавить" отображается в меню "Параметры" (справа; вместе с "Srttings"). Вот мой menu.xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <item android:id="@+id/action_favourite"
        android:icon="@mipmap/ic_add"
        android:title="@string/menu_add"
        android:showAsAction="always"/>


    <item android:id="@+id/action_settings" android:title="@string/action_settings"
        android:orderInCategory="100" app:showAsAction="never" />

</menu>

Я пробовал предложения, которые мог найти, но ни один из них не решил мою проблему. Мой телефон LG G3. Как я могу решить эту проблему?

дополнительная информация: onCreateOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

2 ответов


просто использовать app:showAsAction="always" и xmlns:app="http://schemas.android.com/apk/res-auto" тогда он покажет.

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <item android:id="@+id/action_favourite"
        android:icon="@mipmap/ic_add"
        android:title="@string/menu_add"
        app:showAsAction="always"/>


    <item android:id="@+id/action_settings"
        android:title="@string/action_settings"
        android:orderInCategory="100"
        app:showAsAction="never" />

</menu>

вы, вероятно, используете библиотеку поддержки, которая зависит от пространства имен приложения. Если вы сомневаетесь, просто добавьте одно и то же свойство дважды (android: и app: пространства имен).


на onCreate() добавить setHasOptionsMenu(true)

и вы, вероятно, раздуваете неправильный файл меню.