侧滑菜单 drawerlayout 与 NavigationView

使用侧滑菜单的应用也有很多。 网上有不少自定义的解决方案,但是google给出了官方的解决方法那就是drawerlayout。 这个组件有V4包内的组件,而navigationview是最新的design包内。所以使用navigation的时候需要加入引用,如果是android studio 直接在library dependeces里搜索添加即可。

使用官方的侧滑有两种一种是模板的方式, 直接利用模板引导器创建, 另一种是自定义;第一种方式就不再描述了。这里描述第二种。

代码:

主布局



    
    
    


header布局




    


drawer的menu布局




    
    
    

    
        
            
            
            
        
    

关闭代码

 if(drawerLayout.isDrawerOpen(GravityCompat.START)){
            drawerLayout.closeDrawer(GravityCompat.START);
 }
开启代码

drawerLayout.openDrawer(GravityCompat.START);

事件响应需要设置导航监听,并处理item,实现以下接口

NavigationView.OnNavigationItemSelectedListener


总结:

需要注意三点:

1、在布局中使用drawerlayout 包含navigationview, 必须设置navigationview的layout_gravity属性,start 或者end , start对应屏幕左边,end 对应于屏幕右边,如果没有会抛出没有找到相关属性的视图异常。 

2、navigationview的显示是

app:headerLayout="@layout/header"
app:menu="@menu/drawer"
前者是侧滑菜单头部

后者是侧滑菜单正文






你可能感兴趣的:(侧滑菜单 drawerlayout 与 NavigationView)