笔记116--DrawerLayout

一、DrawerLayout基本用法

1、这是个啥玩意

抽屉布局,手势滑动或者点击按钮,出来一个侧滑菜单。其实截图最好~就不截~

2、这玩意能干啥

可以支持左边画出菜单,或者右边画出菜单,也可以左右菜单同时存在。

3、这玩意怎么用
1)布局文件

DrawerLayout作为根布局。第一个子布局是要显示的主界面,第二个子布局是侧滑菜单,第三个自布局也是侧滑菜单(可省略)。

注意:

必须指定第二个子布局和第三个子布局的layout_gravity属性为left或right。

第二个子布局和第三个子布局不要太大,不然全屏了体现不出效果来。

<android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <!-- The main content view -->
        <!-- main content must be the first element of DrawerLayout because it will be drawn first and drawer must be on top of it -->

        <LinearLayout
            android:id="@+id/content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/tv1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="100dp"
                android:text="@string/hello" />

            <TextView
                android:id="@+id/tv2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="all"
                android:text="@string/web_url"
                android:textColor="#3A9FF7" />

            <Button
                android:id="@+id/btn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="12121" />
        </LinearLayout>

        <!-- The navigation drawer -->

        <ListView
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_gravity="left"
            android:background="#111"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="0dp" />

        <LinearLayout
            android:layout_width="150dp"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:background="#111" >

            <TextView
                android:id="@+id/tvurl"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/web_url" />
        </LinearLayout>
</android.support.v4.widget.DrawerLayout>

2)方法介绍

a. mDrawerLayout.openDrawer(Gravity.RIGHT);

打开侧滑菜单。此参数与布局文件中指定的layout_gravity必须相同。

b.mDrawerLayout.closeDrawers();

关闭所有侧滑菜单。

c.mDrawerLayout.closeDrawer(gravity);

关闭指定侧滑菜单。

d.setDrawerListener()

监听菜单的打开关闭事件。

4、历史遗留问题

之前有个SlidingDrawer,在api 17中被弃用了。

二、ActionBarDrawerToggle基本用法


你可能感兴趣的:(笔记116--DrawerLayout)