Material Design(二)--DrawerLayout<滑动菜单>

DrawerLayout用法:

首先DrawerLayout是一个布局继承于ViewGroup,在布局中允许放入两个直接子控件,第一个子控件是主屏幕中显示的内容,第二个子控件是滑动菜单显示的内容。布局如下:




    

        

            
        

    
    
    



    final DrawerLayout drawerLayout= (DrawerLayout) findViewById(R.id.drawer_layout);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                Toast.makeText(MainActivity.this, "NavigationIcon is Click", Toast.LENGTH_SHORT).show();
                drawerLayout.openDrawer(GravityCompat.START);
            }
        });

运行结果:


Material Design(二)--DrawerLayout<滑动菜单>_第1张图片
image.png

注意:

  • 事实上,我们可以在滑动菜单页面定时任意的布局。

NavigationView

NavigationView 是design库提供的一个控件,它不仅是严格按照Material Design 的要求来进行设计的,而且还可以将滑动页面的实现变得非常简单。

引入design 库

   compile 'com.android.support:appcompat-v7:25.3.1'
   compile 'com.android.support:design:25.3.1'
   compile 'de.hdodenhof:circleimageview:2.1.0'

在Menu 文件下下建立:nav_menu.xml文件



    
    
        
        
        
        
        
    

然后在建立一个头布局:nav_header




    

    

    


接下来要在main_activity中引入NavigationView




    

        

            
        

    

    



代码中应用:

  NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setCheckedItem(R.id.nav_call);//设置选中的item
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.nav_call:
                        Toast.makeText(MainActivity.this, "nav_call点击了", Toast.LENGTH_SHORT).show();
                        break;
                    case R.id.nav_friends:
                        Toast.makeText(MainActivity.this, "nav_friends点击了", Toast.LENGTH_SHORT).show();

                        break;
                    case R.id.nav_location:
                        Toast.makeText(MainActivity.this, "nav_location点击了", Toast.LENGTH_SHORT).show();

                        break;
                    case R.id.nav_mail:
                        Toast.makeText(MainActivity.this, "nav_mail点击了", Toast.LENGTH_SHORT).show();

                        break;
                    case R.id.nav_task:
                        Toast.makeText(MainActivity.this, "nav_task点击了", Toast.LENGTH_SHORT).show();

                        break;
                }
                drawerLayout.closeDrawers();
                return true;
            }
        });

运行如下图:


Material Design(二)--DrawerLayout<滑动菜单>_第2张图片
image.png

你可能感兴趣的:(Material Design(二)--DrawerLayout<滑动菜单>)