我的 DrawerLayout 中有 NavigationView ,假设它有简单的菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings_black_24dp"
android:title="@string/title_settings"/>
</menu>
现在我设置点击监听器:
mNavigationVeiw.setOnNavigationItemSelected(this);
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_settings:
SettingsActivity.startActivity(this);
mDrawerLayout.closeDrawer(GravityCompat.START);
return true;
}
return false;
}
问题是我没有看到连锁反应。当我长按项目时,会显示波纹,但单击后它不起作用。我认为问题是我在单击后打开“活动”而不是替换片段,并且我的菜单应该有其他选项。我该如何解决这个问题?
EDIT
当我设置时一切正常<group android:checkableBehavior="single">
但就我而言,这不是这种行为,因为我正在启动另一个活动,并且它不应该检查单击的项目,因为在这个新活动中,后退按钮位于顶部,而不是访问导航抽屉。
将 itemBackground 添加到 xml 文件内的 NavigationView 中,并添加以下属性:
app:itemBackground="@drawable/ripple_navigation_selector"
另外,在drawable-v21文件夹中,添加ripple_navigation_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/submit_btn_ripple_color" >
<item android:drawable="@color/accentColor" />
<item
android:id="@android:id/mask"
android:drawable="@android:color/white" />
</ripple>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)