Значок меню не отображается

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

У меня есть панель инструментов с меню, но значок элементов не отображается ни при предварительном просмотре, ни во время выполнения: введите здесь описание изображения

Значки можно рисовать из svg, и все они отображаются нормально, когда я пытаюсь разместить их в buttons или imageviews.

мое меню:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".activities.MenuAdsAppCompatActivity">
    <item android:id="@+id/action_notification1"
        android:icon="@drawable/ic_more"
        android:title="action_notification">

        <item android:id="@+id/action_share_us"
            android:icon="@drawable/ic_share"
            android:title="@string/share_us" />
        <item android:id="@+id/action_rate_us"
            android:icon="@android:drawable/ic_menu_info_details"
            android:title="@string/rate" />
        <item android:id="@+id/action_about"
            android:checked="false"
            android:icon="@drawable/ic_about"
            android:title="@string/about" />
    </item>

</menu>

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

===================ОБНОВЛЕНИЕ=============================

соответствующие методы деятельности:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.menu_toolbar, menu);
        return true;
    }

    @Override
    public void setContentView(@LayoutRes int layoutResID) {
        super.setContentView(layoutResID);
        ViewGroup v = (ViewGroup) ((ViewGroup) this.findViewById(android.R.id.content)).getChildAt(0);
        Toolbar toolbar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.action_bar, null);
        this.helpView = (WebView) LayoutInflater.from(this).inflate(R.layout.html_dialog, null);
        v.addView(toolbar, 0);

        try {
            ViewGroup.MarginLayoutParams layout = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
            layout.setMargins(-v.getPaddingLeft(), -v.getPaddingTop(), -v.getPaddingRight(), v.getPaddingTop()+5);
            toolbar.setLayoutParams(layout);
        } catch (Exception e) {
            e.printStackTrace();
        }

        this.setSupportActionBar(toolbar);

    }

================================ ОБНОВЛЕНИЕ 2 ==============

По предложению @Dhiraj значки теперь в порядке ... но я все же хотел бы, чтобы меню НЕ закрывало панель инструментов.

введите здесь описание изображения


person Rafael Lima    schedule 17.06.2018    source источник
comment
Ваш вопрос неполный. Добавьте код активности. и стиль.   -  person ADM    schedule 17.06.2018


Ответы (1)


Оберните свои элементы внутри <menu> и добавьте app:showAsAction="always" к родительскому элементу.

Обновленное меню:

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

   <item android:id="@+id/action_notification1"
        android:icon="@drawable/ic_more"
        app:showAsAction="always"
        android:title="action_notification">
        <menu>
        <item android:id="@+id/action_share_us"
            android:icon="@drawable/ic_share"
            android:title="@string/share_us" />
        <item android:id="@+id/action_rate_us"
            android:icon="@android:drawable/ic_menu_info_details"
            android:title="@string/rate" />
        <item android:id="@+id/action_about"
            android:checked="false"
            android:icon="@drawable/ic_about"
            android:title="@string/about" />
        </menu>
    </item>

</menu>

И чтобы отобразить меню под панелью инструментов, вам нужно указать actionOverflowMenuStyle для вашего стиля. Для этого см.: https://stackoverflow.com/a/34288434/3552066

person Dhiraj Sharma    schedule 17.06.2018
comment
Кстати, вы знаете простой способ изменить цвет фона меню? какой атрибут стиля я могу установить? все ответы у меня более сложные - person Rafael Lima; 17.06.2018