在NavigationView的中的菜单项显示选中效果

google最新在android 5.0中推出的新控件NavigationView可以轻松实现侧拉菜单栏的效果,具体实现在网络上有很多文章描述,本文主要讲在设置菜单项选中效果中要注意的细节。

首先在布局文件中,NavigationView控件的menu中需要注明一个behavior:



    
        
        
        
    

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)