google最新在android 5.0中推出的新控件NavigationView可以轻松实现侧拉菜单栏的效果,具体实现在网络上有很多文章描述,本文主要讲在设置菜单项选中效果中要注意的细节。
首先在布局文件中,NavigationView控件的menu中需要注明一个behavior:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:title="menu1"
>
</item>
</group>
</menu>checkableBehavior="single"表示每一个选项都是单选的,如果不注明这句话,NavigationView不会自动显示选中效果。
接下来要下java文件中为NavigationView添加监听器:
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setCheckable(true);//设置选项可选
menuItem.setChecked(true);//设置选型被选中
mDrawerLayout.closeDrawers();//关闭侧边菜单栏
return true;
}
});
NavigationView,NavigationView监听器中的MenuItem的函数setChecked本来设置为true就表示菜单项被选中,设置为false就表示菜单项取消选中,但是我发现无论设置true还是false菜单项都是被选中,在此如果想取消选中状态可以调用setCheckable(false),以后想要再次设置选中状态需要setCheckable(true),再setChecked(true)。
本文介绍如何在Android 5.0及以上版本中使用NavigationView创建侧拉菜单,并着重讲解在设置菜单项选中效果时的注意事项。通过在布局文件中配置menu及在Java代码中添加监听器,设置MenuItem的选中状态。特别指出,要取消选中状态需调用setCheckable(false),再次设置选中则需先setCheckable(true)再setChecked(true)。
2961

被折叠的 条评论
为什么被折叠?



