View—drawerLayout學習

drawerLayout是什么

drawerLayout是一個布局控件,跟LinearLayout等控件是一樣;drawerLayout具有滑動的功能,一般用來實現(xiàn)側滑菜單

怎么用

  1. 和其他布局一樣,但是需要作為根布局使用
  2. 寬高必須是 match_parent
  3. 第一個子布局作為主頁面布局內容
  4. 第二個子布局作為側滑菜單的布局

一:布局

<?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的可選項有

  1. DrawerLayout.DrawerListener
  2. ActionBarDrawerToggle—能做DrawerListener 的所有事情,同時能將drawerLayout的展開和隱藏與actionbar的app 圖標關聯(lián)起來
  3. 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) {

    }
});

要點

主內容布局

  1. 寬度和高度必須都是match_parent****
  2. 不能使用layout_gravity屬性

側滑布局

  1. 必須使用 layout_gravity 屬性,可選項 left 、right 或者 start、end

參考

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0925/1713.html

http://www.itdecent.cn/p/65f268f01dce

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容