Android DrawerLayout使用

         说到DrawerLayout,其实并不陌生,查看源码可以发现他是android .support.v4下面的一个组件,那么他究竟是干什么用的呢,说白了就是一个google官方提供的侧滑组件,相信吃瓜落的你已经使用过SlidingMen自定义组件,那么他和SlidingMenu类似,这下你应该懂了吧。

         还不懂的看下图:

        

        好了,那接下来就说说这玩意怎么用了。

        其实他的用法还是比较简单的,就像是LinearLayout,RelativeLayout一样使用,然后在内部在定义两部分的布局:1)主界面布局 2)侧滑布局(这块内容包含两块区域:左侧侧滑内容和右侧侧滑内容,但这两块根据需要可以只布局其中一个,或者两个)。其实就这么简单

      

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

     <!--主页面显示的内容布局-->

<RelativeLayoutandroid:id="@+id/content_layout"android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout>

    <!--左侧显示的内容-->
    <RelativeLayout
        android:id="@+id/left_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="#ff00ff">

    </RelativeLayout>

  <!--右侧显示的内容--> 
    <RelativeLayout
        android:id="@+id/right_layout"
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_gravity="right" 
        android:background="#ffff00"> 
   </RelativeLayout>
</android.support.v4.widget.DrawerLayout>
然后运行起来就可以左右侧滑了,是不是非常简单!!!

其实细心的你会发现,在DrawerLayout中进行主页面和侧滑布局的时候,我是先写的主页面布局

     <!--主页面显示的内容布局-->
 <RelativeLayout
    android:id="@+id/content_layout"
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
  </RelativeLayout>

然后再写的侧滑布局(左,右)

好了那么问题来了

我可不可以按照如下的顺序来写呢:左侧侧滑,主页面,右侧侧滑
于是笔者带着这种思路去修改,从左到右写,反正我在左侧的侧滑布局中设置了layout_gravity="left"  那他就应该知道,我没设置的就是主页面。


那么笔者告诉你:

       这样写是可以的,而且运行后也是可以滑动的,但是出现的现象是这样的:

      1)左侧滑出来的view想要滑回去,就只能点击右边部分没内容的区域,滑动是不起作用的
      2)左侧如果是导航菜单,想要更换主页面的内容,也是无法更换的

这样是不是非常的影响用户体验呢?

官方的说法是:

       1、DrawerLayout最好为界面的根布局,否则可能会出现触摸事件被屏蔽的问题;

      2、主界面布局要放在侧滑布局前面,因为XML顺序意味着按Z序排序(层叠排序)

      3、侧滑菜单必须设置layout_gravity属性


至于其他的DrawerLayout设置Listener等,就不在这里废话了,没什么好说的

其实说了一大堆,上面的这三条是比较重要的,笔者曾经为此付出过时间代价。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值