Android 如何将菜单项添加到Google';什么是新的导航视图?
我为抽屉菜单制作了一个xml,其中包含以下菜单项:Android 如何将菜单项添加到Google';什么是新的导航视图?,android,navigationview,Android,Navigationview,我为抽屉菜单制作了一个xml,其中包含以下菜单项: <item android:title="Contacts" android:id="@+id/contact_list"> <menu> </menu> </item> 不幸的是,这不起作用,并且没有添加菜单项。我尝试过许多其他不同的版本,但没有一个更新我导航抽屉中的子菜单 这可能是一个bug吗?你用了错误的方法。。。 你不必再找菜单了。。。只需在mNavMenu的实例上调用
<item android:title="Contacts"
android:id="@+id/contact_list">
<menu>
</menu>
</item>
不幸的是,这不起作用,并且没有添加菜单项。我尝试过许多其他不同的版本,但没有一个更新我导航抽屉中的子菜单
这可能是一个bug吗?你用了错误的方法。。。 你不必再找菜单了。。。只需在mNavMenu的实例上调用该方法
mNavMenu = mNavigationView.getMenu();
mNavMenu.addSubMenu("It's new bro .. ");
显然,目前唯一的解决方案是使用反射调用菜单上的notifyDataSetChanged():
for (int j = 0, count = mNavigationView.getChildCount(); j < count; j++) {
final View child = mNavigationView.getChildAt(j);
if (child != null && child instanceof ListView) {
final ListView menuView = (ListView) child;
final HeaderViewListAdapter adapter = (HeaderViewListAdapter) menuView.getAdapter();
final BaseAdapter wrapped = (BaseAdapter) adapter.getWrappedAdapter();
wrapped.notifyDataSetChanged();
}
}
for(int j=0,count=mNavigationView.getChildCount();j
这将使用新项目更新菜单 上面的工作原理和事实上创建了一个新的子菜单,但我在将菜单项添加到现有子菜单时遇到了问题。我已经成功地创建了一个子菜单。问题是在创建子菜单后,将菜单项添加到子菜单本身,无论是在布局中还是在此处显示的代码中以编程方式。据我所知,这是库中的一个错误,但我还没有找到它的参考
for (int j = 0, count = mNavigationView.getChildCount(); j < count; j++) {
final View child = mNavigationView.getChildAt(j);
if (child != null && child instanceof ListView) {
final ListView menuView = (ListView) child;
final HeaderViewListAdapter adapter = (HeaderViewListAdapter) menuView.getAdapter();
final BaseAdapter wrapped = (BaseAdapter) adapter.getWrappedAdapter();
wrapped.notifyDataSetChanged();
}
}