Android官方侧滑DrawerLayout用法

      DrawerLayoutSupport V4 Library包中实现了侧滑菜单效果的控件,
可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。
DrawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)。

1.设置布局
      DrawerLayout的使用非常方便,由于是官方控件,所以不需要倒入第三方的开发包。相比较githup上的侧滑控件,使用起来 相对简单。DrawerLayout在使用中其实就相当于一个布局文件,LinearLayout、RelativeLayout布局的使用方式类似,但是DrawerLayout可以实现滑动。先贴一段DrawerLayout的布局代码 这段代码只是简单展示DrawerLayout的布局如何使用。 
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <!-- 主视图 -->
    <RelativeLayout
        android:id="@+id/content_relat"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
        <ImageButton
            android:id="@+id/imgBtn_tittle_amin1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="@dimen/tittle_activity_backlogo"
            android:background="@mipmap/back2"/>


    </RelativeLayout>

    <!-- 侧滑视图 -->
    <RelativeLayout
        android:id="@+id/rela_drawlayout_main"
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:background="#005fcc"
        android:layout_gravity="start"
        android:clickable="false"
        >
        <ImageView
            android:id="@+id/img_user_main"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:background="@mipmap/logo"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="56dp"/>

    </RelativeLayout>

</android.support.v4.widget.DrawerLayout>
在这个布局文件中,需要注意的是,主视图一定要放在侧滑试图的前面,而且在侧滑视图中,需要有layout_gravity属性来
表明侧滑是从左边画出还是右边滑出的标志。


2.申明及拦截触摸事件
前面我们说到DrawerLayout是一个布局,那么其基本的用法就和其他布局类似了。布局文件加载后,只需要声明并获取里面
的控件就可随意使用。但是当我们在使用时,会发现当我们点击侧滑出来的菜单上空白部分时,背后的主视图相对的控件部分也会响应
事件,这时,我们需要阻止触摸事件的传递:把侧滑布局获得到并组织触摸事件的传递。
 //拦截触摸事件,阻止触摸事件的传递
        rela_drawlayout.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return true;
            }
        });

3.代码实现DrawerLayout的隐藏与显示
在开发中,我们有时需要点击按钮来操作侧滑部分的隐藏与显示,这时我们可以调用其 DrawerLayout.closeDrawer方法用于隐藏侧边菜单,
DrawerLayout.openDrawer方法用于
隐藏和展开侧边菜单。
case R.id.imgBtn_tittle_amin:
                drawerLayout.openDrawer(rela_drawlayout);

                break;

4.DrawerLayout相关详细介绍
本文只是介绍了DrawLayout的大致基本用法与初步了解,并没有作更加详细的介绍。下面我讲提供一些详细介绍的地址,供参考:
DrawerLayout详细介绍博客:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html
DrawerLayout详细视频介绍:http://www.jikexueyuan.com/course/449.html
另外 此处还有自定义侧滑菜单的实现:http://www.jikexueyuan.com/course/382.html





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值