drawerLayout是什么
drawerLayout是一个布局控件,跟LinearLayout等控件是一样;drawerLayout具有滑动的功能,一般用来实现侧滑菜单
怎么用
- 和其他布局一样,但是需要作为根布局使用
- 宽高必须是 match_parent
- 第一个子布局作为主页面布局内容
- 第二个子布局作为侧滑菜单的布局
一:布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name3"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_gravity="start"
android:background="@color/colorWhite">
<TextView
android:id="@+id/drawer_menu1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/app_name"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/app_name1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/app_name2"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
事件监听
通过 addDrawerListener 来添加监听事件,监听侧滑的打开或者关闭
DrawerListener的可选项有
- DrawerLayout.DrawerListener
- ActionBarDrawerToggle—能做DrawerListener 的所有事情,同时能将drawerLayout的展开和隐藏与actionbar的app 图标关联起来
- DrawerListener的子类SimpleDrawerListener—这个类的时候不必实现全部的回调函数,根据自己的需要重写即可
drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
}
@Override
public void onDrawerClosed(View drawerView) {
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
要点
主内容布局
- 宽度和高度必须都是match_parent****
- 不能使用layout_gravity属性
侧滑布局
- 必须使用 layout_gravity 属性,可选项 left 、right 或者 start、end
参考