我有一个基本问题,我很惊讶我没有找到一个已经处理这个问题的主题:我添加元素到我的导航抽屉菜单时遇到困难。动态添加项目到NavigationDrawer菜单
我保留了菜单的参考:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_pager, menu);
mMenu = menu;
return true;
}
而且在的AsyncTask的回调,我尝试将项目添加到我的菜单是这样的:
mMenu.add("title").setIcon(R.drawable.ic_group);
Idealy我想将它添加到“menu_group”组中,但现在我尝试这种方式。
布局/ activity_main_pager
<android.support.v4.widget.DrawerLayout 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"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<include
layout="@layout/app_bar_main_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main_pager"
app:menu="@menu/activity_main_pager_drawer" />
</android.support.v4.widget.DrawerLayout>
菜单/ activity_main_pager_drawer
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/menu_title_groups">
<menu>
<group android:id="@+id/menu_groups">
<item
android:id="@+id/menu_add_group"
android:icon="@drawable/ic_group_add"
android:title="@string/menu_add_group" />
</group>
</menu>
</item>
</menu>
奖金的问题:我的菜单 “menu_add_group” 项目的图标显示不正确,我有一个灰色的方块而不是它。
谢谢,如果我没有搜索correclty,请不要犹豫与我联系。
好吧,其中一个问题是我得到我的mMenu的方式。我添加了所有我的救命恩人上市加改正这一个:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_pager, menu);
return true;
}
,并在我的活动初始化:
NavigationView nav = (NavigationView) mDrawer.findViewById(R.id.nav_view);
mMenu = nav.getMenu();
当我添加菜单项:
menu.add("title").setIcon(R.drawable.ic_group);
supportInvalidateOptionsMenu();
仍然不打印我的菜单项目。我的代码中必须有一个以上的缺陷。 setItemIconTintList(null)认为它的工作!谢谢 ! –
您仍然需要在'onCreateOptionsMenu(菜单)'中正确填充菜单。我已经更新了我的答案,明确提及它。 –
我有这种感觉,我不应该在onCreateOptionMenu中获得菜单,还有其他方法吗? –