我的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>
现在我设置了click的监听器:
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;
}
问题在于我没有看到涟漪效应。当我长按项目时,波纹显示,但点击它不起作用。我认为问题是我在点击后打开Activity而不是替换片段,我的菜单应该有附加选项。我该如何解决这个问题?
修改
当我设置<group android:checkableBehavior="single">
时,一切正常,但在我的情况下,这不是这种行为,因为我正在启动另一个活动并且它不应该检查点击的项目,因为在这个新的活动中是返回顶部的按钮而不是访问导航抽屉。
答案 0 :(得分:3)
将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>