drawerLayout是什麼
drawerLayout是一個佈局控制元件,跟LinearLayout等控制元件是一樣;drawerLayout具有滑動的功能,一般用來實現側滑選單
怎麼用
- 和其他佈局一樣,但是需要作為根佈局使用
- 寬高必須是 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>複製程式碼
事件監聽
通過 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
參考