我正在开发一款Android应用.在我的应用程序中,我将以编程方式将菜单项添加到导航视图.但是我在检查时设计这些项目时遇到了问题.我的问题是现在只有在检查项目时才更改文本颜色.但是我想要的项目如下所示突出显示背景.
我正在以编程方式添加菜单项
menu.add(CATEGORY_MENU_GROUP_ID, itemId, i + 1, title).setIcon(dIcon).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
item.setChecked(true);
return true;
}
});
所以我创建了这样的背景项(nav_item_bg.xml)
android:shape="rectangle" >
android:width="1dp"
android:color="@color/lightGray" >
我的导航视图xml
app:itemIconTint="@drawable/drawer_item"
app:itemTextColor="@drawable/drawer_item"
android:id="@+id/left_nv_view"
app:headerLayout="@layout/header_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start" />
这是drawable中的drawer_item.xml
当我运行时,导航视图中所有菜单项的背景都会更改,即使它们未被选中.我想要的只是在选中时更改.请问我该如何更正我的代码?我怎么能实现它呢?
我尝试将nav_item_bg.xml更改为此
但不只是工作.
解决方法:
添加新菜单后,只需为其设置checkAble值:
menu.add(CATEGORY_MENU_GROUP_ID, itemId, i + 1, title).setIcon(dIcon).setCheckable(true);
标签:android,navigation-drawer,menuitem,android-navigationview
来源: https://codeday.me/bug/20190702/1353536.html