亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-06 19:15:19 來源:腳本之家 閱讀:636 作者:yangyang_boke 欄目:移動開發

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的側滑效果會浮現在主界面的上方,而不像其他側滑菜單,不會遮擋主界面。

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲阳县| 阿拉善盟| 临邑县| 乌什县| 闽侯县| 兴城市| 高台县| 东宁县| 礼泉县| 敖汉旗| 儋州市| 融水| 望江县| 田林县| 萝北县| 石棉县| 略阳县| 台东县| 霍州市| 锡林浩特市| 平阴县| 惠东县| 五莲县| 龙井市| 陆丰市| 诸暨市| 西乌珠穆沁旗| 中牟县| 高邮市| 珲春市| 通州区| 富蕴县| 巴东县| 湖州市| 忻城县| 洪洞县| 万宁市| 浮山县| 湘阴县| 隆子县| 河东区|