美文网首页
DrawerLayout侧拉菜单控件的使用

DrawerLayout侧拉菜单控件的使用

作者: 程序猿的小生活 | 来源:发表于2018-11-22 11:22 被阅读33次

    1.DrawerLayout是在Android的support库中增加了一个专门用于创建侧滑菜单的组件,该组件首先在layout布局中定义,如下:

     <android.support.v4.widget.DrawerLayout
            android:id="@+id/drawer_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
      <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_marginLeft="8dp"
                        android:layout_toRightOf="@+id/cyyj_image"
                        android:gravity="center"
                        android:text="我是主界面"
                        android:textColor="#6b6969"
                        android:textSize="14sp" />
       </LinearLayout>
       <LinearLayout
               android:background="#ffffff"
               android:layout_gravity="left"
                android:layout_width="300dp"
                android:layout_height="match_parent"
                android:orientation="vertical">
      <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_marginLeft="8dp"
                        android:layout_toRightOf="@+id/cyyj_image"
                        android:gravity="center"
                        android:text="我是侧拉界面"
                        android:textColor="#6b6969"
                        android:textSize="14sp" />
       </LinearLayout>
        </android.support.v4.widget.DrawerLayout>
    

    如上面布局所示,android.support.v4.widget.DrawerLayout是侧滑的控件,控件下面有两个LinearLayout布局,其中第一个LinearLayout布局为主界面,可以在里面布置主界面的内容,第二个LinearLayout布局为侧拉界面,这里需要注意的是设置 android:layout_gravity="left"属性,表示从左侧出现侧拉,可以根据需求修改属性值,宽度可以设置300dp吧,侧拉界面不要全部挡住主界面,侧拉界面内容可以根据需求任意发挥了。
    2.代码中使用如下
    (1)获得控件

       drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    

    (2)为控件设置监听

     drawerLayout.addDrawerListener(drawerListener);
            drawerLayout.setScrimColor(Color.TRANSPARENT);//去除侧滑时的阴影
    

    (3)监听实现

     DrawerLayout.DrawerListener drawerListener = new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                // 得到contentView 实现侧滑界面出现后主界面向右平移避免侧滑界面遮住主界面
                View content = drawerLayout.getChildAt(0);
                int offset = (int) (drawerView.getWidth() * slideOffset);
                content.setTranslationX(offset);
            }
    
            @Override
            public void onDrawerOpened(View drawerView) {
              //打开侧滑界面触发
            }
    
            @Override
            public void onDrawerClosed(View drawerView) {
    //关闭侧滑界面触发
            }
    
            @Override
            public void onDrawerStateChanged(int newState) {
               //状态改变时触发
            }
        };
    

    (4)点击按钮弹出侧滑界面实现

     celabtn = (ImageView) findViewById(R.id.cela);//侧拉菜单点击按钮
     celabtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
    
                    drawerLayout.openDrawer(Gravity.LEFT);
    
                }
            });
    

    (5)手动关闭侧滑调用方法

       drawerLayout.openDrawer(Gravity.LEFT);
    

    相关文章

      网友评论

          本文标题:DrawerLayout侧拉菜单控件的使用

          本文链接:https://www.haomeiwen.com/subject/aenkqqtx.html