Android官方DrawerLayout 抽屉式侧滑菜单-简单使用方法

Android原生控件:DrawerLayout 抽屉式侧滑菜单

 

布局:

内分两个子布局,第一个子布局是主界面没做滑动操作显示的,第二个子布局是放滑动出来的局面布局。

在第二个子布局内切记要加android:layout_gravity=" ",否则无效果的!!!

DrawerLayout+ToolBar报错:DrawerLayout must be measured with MeasureSpec.EXACTLY.
点这里https://blog.csdn.net/weisubao/article/details/60871641

当然侧滑菜单最大的宽度就是320dp



        

        

        

        

 

实用代码: 

 //控件
        DrawerLayout drawerLayout = findViewById(R.id.drawerlayout);
         ImageView drawer_change = findViewById(R.id.drawer_change);

        //实现drawerLayout监听方法
        drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {

            //当抽屉被滑动的时候调用此方法  arg1 表示 滑动的幅度(0-1)
            @Override
            public void onDrawerSlide(@NonNull View view, float v) {
                Toast.makeText(MainActivity.this, "onDrawerSlide", Toast.LENGTH_SHORT).show();
            }

            //当一个抽屉被完全打开的时候被调用
            @Override
            public void onDrawerOpened(@NonNull View view) {
                Toast.makeText(MainActivity.this, "onDrawerOpened", Toast.LENGTH_SHORT).show();
            }

            //当一个抽屉完全关闭的时候调用此方法
            @Override
            public void onDrawerClosed(@NonNull View view) {
                Toast.makeText(MainActivity.this, "onDrawerClosed", Toast.LENGTH_SHORT).show();
            }

            //状态改变的时候调用此方法
            @Override
            public void onDrawerStateChanged(int i) {
                Toast.makeText(MainActivity.this, "onDrawerStateChanged", Toast.LENGTH_SHORT).show();
            }
        });

        //点击控制显示隐藏
        drawer_change.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //判断打开的时候,将其关闭,反之打开
                if (drawerLayout.isDrawerOpen(Gravity.LEFT)) {
                //关闭侧滑菜单
                    drawerLayout.closeDrawer(Gravity.LEFT);
                } else {
                //打开侧滑菜单
                    drawerLayout.openDrawer(Gravity.LEFT);
                }
            }
        });

 

 

你可能感兴趣的:(Android)