android - 菜单图标不显示

标签 android android-toolbar android-menu android-icons

我已经阅读了数以千计的此类问题和接缝,即使遵循最基础的教程我也无法使其正常工作。

我有一个带菜单的工具栏,但项目图标在预览和运行时都没有显示: enter image description here

图标可以从 svg 中绘制,当我尝试放置在 buttonsimageviews 时,它们都显示正常

我的菜单是:

<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>

另一件事是在运行时菜单覆盖了工具栏,我希望它表现得像菜单从工具栏底部开始的设计预览

===================更新=========================== ==

相关 Activity 方法:

@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 的建议,图标现在可以了...但我仍然想让菜单不覆盖工具栏

enter image description here

最佳答案

将您的元素包裹在 <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

关于android - 菜单图标不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50899023/

相关文章:

android - Azure 通知中心 - 注册频率?

android - 将 "section dividers"添加到我的布局中?

android - 当使用协调器布局滚动我的 recyclerview 时,如何提供自动隐藏/显示工具栏?

android - 创建自定义工具栏?

android - 如何删除可检查菜单项的末尾填充?

android - 使用 WebView 的 Jetpack 导航无法正常工作

安卓传感器数据丢失

android - 使用工具栏导航回父 Activity

android - 在 Android 中创建菜单的正确方法是什么?

android - 如何在android中的导航菜单中创建子级别?