DrawerLayout和NavigationView实现侧滑

Google在Android5.0之后推出的NavigationView

实现效果:

DrawerLayout和NavigationView实现侧滑_第1张图片
20181115_211009.png

1. 布局



    
    


可以看到我们的最外层是DrawerLayout,包含了两个内容:include为显示内容区域,NavigationView为侧边抽屉栏。

NavigationView有两个app属性,分别为app:headerLayout和app:menu,headerLayout用于显示头部的布局(可选),menu用于建立MenuItem选项的菜单。

  • nav_header_test1.xml(就是正常的布局文件)



    

    

    



  • activity_test1_drawer.xml 菜单布局



    
        
        
        
        
    

    
        
            
            
        
    



2. 事件的监听

 NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
 navigationView.setNavigationItemSelectedListener(this);

 @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_camera) {
            // Handle the camera action
        } else if (id == R.id.nav_gallery) {

        } else if (id == R.id.nav_slideshow) {

        } else if (id == R.id.nav_manage) {

        } else if (id == R.id.nav_share) {

        } else if (id == R.id.nav_send) {

        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

 @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

3.如何调整菜单文字属性

  1. 如果调整颜色,可以在NavigationView里添加
app:itemIconTint="@color/blue1"
app:itemTextColor="@color/blue1"

来指定文字和图标为蓝色
如果需要文字加粗,改变文字大小等


你可能感兴趣的:(DrawerLayout和NavigationView实现侧滑)