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

<android.support.v4.widget.DrawerLayout
        android:id="@+id/drawerlayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

        </LinearLayout>

        <LinearLayout
            android:layout_width="320dp"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="#00bfff">

        </LinearLayout>

 </android.support.v4.widget.DrawerLayout>

实用代码: 

 //控件
        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);
                }
            }
        });

猜你喜欢

转载自blog.csdn.net/weixin_43917449/article/details/86059463