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

友情链接: 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>



你可能感兴趣的:(android DrawerLayout 实现侧滑菜单 知识整理(一))