drawerLayout是什么
drawerLayout是一個布局控件,跟LinearLayout等控件是一樣;drawerLayout具有滑動的功能,一般用來實現(xiàn)側滑菜單
怎么用
- 和其他布局一樣,但是需要作為根布局使用
- 寬高必須是 match_parent
- 第一個子布局作為主頁面布局內容
- 第二個子布局作為側滑菜單的布局
一:布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
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>
事件監(jiān)聽
通過 addDrawerListener 來添加監(jiān)聽事件,監(jiān)聽側滑的打開或者關閉
DrawerListener的可選項有
- DrawerLayout.DrawerListener
- ActionBarDrawerToggle—能做DrawerListener 的所有事情,同時能將drawerLayout的展開和隱藏與actionbar的app 圖標關聯(lián)起來
- DrawerListener的子類SimpleDrawerListener—這個類的時候不必實現(xiàn)全部的回調函數(shù),根據自己的需要重寫即可
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
參考
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html