抽屉布局,手势滑动或者点击按钮,出来一个侧滑菜单。其实截图最好~就不截~
可以支持左边画出菜单,或者右边画出菜单,也可以左右菜单同时存在。
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>
a. mDrawerLayout.openDrawer(Gravity.RIGHT);
打开侧滑菜单。此参数与布局文件中指定的layout_gravity必须相同。
b.mDrawerLayout.closeDrawers();
关闭所有侧滑菜单。
c.mDrawerLayout.closeDrawer(gravity);
关闭指定侧滑菜单。
d.setDrawerListener()
监听菜单的打开关闭事件。
之前有个SlidingDrawer,在api 17中被弃用了。
二、ActionBarDrawerToggle基本用法