NavigationView 项目上的波纹效果

2024-01-09

我的 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(使用前将#替换为@)

NavigationView 项目上的波纹效果 的相关文章

随机推荐