国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android側滑菜單控件DrawerLayout使用詳解

2019-10-22 18:21:38
字體:
來源:轉載
供稿:網友

DrawerLayout是Android V4包下一個帶有側滑功能的布局控件,可以根據手勢展開與隱藏側邊欄,也可以隨著側邊欄的點擊改變主界面區的內容。并且只需要按照DrawerLayout規定的布局格式進行布局,即可實現左右側滑效果。

一、約定的抽屜布局

  DrawerLayout的布局一般分為三個部分:第一部分為主界面內容布局,第二部分為左邊側滑界面布局,第三部分為右邊側滑界面布局。那么系統是怎么區分左邊側滑和右邊側滑的代碼塊的呢?請注意DrawerLayout布局中側滑部分的代碼塊必須指定android:layout_gravity屬性,layout_gravity="start/left"代表左邊側滑,layout_gravity="end/right"代表右邊側滑。在官方文檔中推薦DrawerLayout最好作為界面的根布局,否則可能會出現觸摸事件被屏蔽的問題。DrawerLayout中主內容區的布局要放到最頂層,接著放置左邊側滑界面布局,最后放置右邊側滑界面布局。類似布局如下:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"   xmlns:tools="http://schemas.android.com/tools"   android:id="@+id/drawerlayout"   android:layout_width="match_parent"   android:layout_height="match_parent"   tools:context="com.administer.drawlayoutdemo.MainActivity">    <RelativeLayout     android:id="@+id/relativelayout"     android:layout_width="match_parent"     android:layout_height="match_parent">     <Button       android:id="@+id/left_btn"       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:text="開啟左邊菜單欄" />      <Button       android:id="@+id/right_btn"       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:text="開啟右邊菜單欄"       android:layout_alignParentRight="true"/>   </RelativeLayout>    <RelativeLayout     android:id="@+id/left"     android:layout_width="200dp"     android:layout_height="match_parent"     android:layout_gravity="left"     android:background="#f00">      <TextView       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:text="左邊布局" />    </RelativeLayout>    <RelativeLayout     android:id="@+id/right"     android:layout_width="200dp"     android:layout_height="match_parent"     android:layout_gravity="right"     android:background="#00f">      <TextView       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:text="右邊布局" />   </RelativeLayout>  </android.support.v4.widget.DrawerLayout> 

二、DrawerLayout的監聽

  DrawerLayout的監聽器有三種。DrawerLayout添加監聽器的方法為drawerLayout.addDrawerListener(),由于DrawerLayout側滑菜單的展開與隱藏均可以被監聽,這樣我們就可以在側滑菜單展開與隱藏發生的時刻做一些希望做的事情。(Ps:drawerLayout.setDrawerListener()已過時,不過仍可使用,與drawerLayout.addDrawerListener()用途一樣)

1、使用DrawerListener監聽

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) {         /**          * 抽屜狀態改變時,調用此方法          * */       }     }); 

2、使用SimpleDrawerListener監聽

  顧名思義,即是DrawerListener的精簡版,不必實現DrawerListener的全部回調函數,可以根據業務需求選擇重寫相應的方法,用法與DrawerListener一致。

3、配合ActionBar使用的ActionBarDrawerToggle監聽

  如果Activity中有ActionBar,最好使用ActionBarDrawerToggle進行監聽,ActionBarDrawerToggle實現了DrawerListener,它可以做DrawerListener能做的所有事情,不過使用ActionBarDrawerToggle監聽,需要選擇重寫的方法。
(補充:1、DrawerLayout.openDrawer()和DrawerLayout.closeDrawer()可以打開和關閉側邊欄。 2、如果側滑欄的點擊事件穿透到主界面,在該側滑欄的布局文件的最外層加上 android:clickable="true")

三、不足(亦或是優點?)

  和一般的側滑菜單相比,DrawerLayout的側滑效果會浮現在主界面的上方,而不像其他側滑菜單,不會遮擋主界面。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赤城县| 灯塔市| 上饶市| 永福县| 罗城| 德令哈市| 师宗县| 横山县| 太保市| 庆云县| 房山区| 新野县| 太仆寺旗| 兴文县| 大悟县| 新邵县| 连平县| 石城县| 邢台县| 博爱县| 辽源市| 繁峙县| 嘉黎县| 崇仁县| 揭东县| 米泉市| 双鸭山市| 临夏县| 长岭县| 开原市| 临安市| 遵义市| 柞水县| 遵义县| 井研县| 南平市| 太保市| 阿克陶县| 龙海市| 安丘市| 太康县|