android DrawerLayout 实现侧滑菜单 知识整理(一)

来源:互联网 发布:simcms二手车2.0 源码 编辑:程序博客网 时间:2024/06/07 07:12

友情链接: http://www.jianshu.com/p/d2b1689a23bf(我觉得这个人写的比我详细,比我透彻,觉得还是把这个链接放在这里吧~~ )


一个android小白,转android开发,今天想实现侧滑菜单这个功能,根据网上资料发现,有现成的 DrawerLayout,于是开始学习这个控件

1,DrawerLayout充当窗口内容的顶层容器,允许”抽屉”式的控件可以从窗口的一边或者两边垂直边缘拉出

        2,抽屉的位置或者布局可以通过 Android:layout_gravity的子view的属性控制从哪边拉出,left/start代表从左边拉出,right/end 代表从右侧拉出,需要注意的是只能从一个抽屉控件从窗口的垂直边缘,多于一个抽屉控件,将会抛出异常

        3,我趟的坑:DrawrLayout must be measured with Measured with MeasureSpec.EXACTLY  由于前面设置的都是 match_parent,所以需要在第二个view中设置一下 layout_gravity="start"

4,侧边菜单其实只是一个普通的View,一般里面装的是ListView,看起来就像菜单,他完全可以是一个button,textView等等。虽然称为菜单,但跟Activity的菜单形式是两码事,Activity的菜单只需要在资源文件中定义好,就能按照固定的形式显示出来。而drawerLayout的侧边菜单显示成什么样完全是取决于你自己,同样点击事件也完全由你自己去写。

源码(网上很多。。):

?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"                                        android:id="@+id/dl_left"                                        android:layout_width="match_parent"                                        android:layout_height="match_parent">    <!--主布局-->    <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent">        <ImageView            android:id="@+id/iv_main"            android:layout_width="100dp"            android:layout_height="100dp" />    </LinearLayout>    <!--侧滑菜单-->    <LinearLayout        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="#fff"        android:layout_gravity="start">        <ListView            android:id="@+id/lv_left_menu"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:divider="@null"            android:text="DrawerLayout" />    </LinearLayout></android.support.v4.widget.DrawerLayout>



原创粉丝点击