欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android側(cè)滑菜單控件DrawerLayout使用詳解

 更新時(shí)間:2017年12月02日 10:20:17   作者:yangyang_boke  
這篇文章主要為大家詳細(xì)介紹了Android側(cè)滑菜單控件DrawerLayout的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

DrawerLayout是Android V4包下一個(gè)帶有側(cè)滑功能的布局控件,可以根據(jù)手勢(shì)展開(kāi)與隱藏側(cè)邊欄,也可以隨著側(cè)邊欄的點(diǎn)擊改變主界面區(qū)的內(nèi)容。并且只需要按照DrawerLayout規(guī)定的布局格式進(jìn)行布局,即可實(shí)現(xiàn)左右側(cè)滑效果。

一、約定的抽屜布局

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

<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="開(kāi)啟左邊菜單欄" /> 
 
    <Button 
      android:id="@+id/right_btn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="開(kāi)啟右邊菜單欄" 
      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的監(jiān)聽(tīng)

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

1、使用DrawerListener監(jiān)聽(tīng)

drawerLayout.addDrawerListener(new DrawerLayout.DrawerListener() { 
      @Override 
      public void onDrawerSlide(View drawerView, float slideOffset) { 
        /** 
         * 抽屜滑動(dòng)時(shí),調(diào)用此方法 
         * */ 
      } 
 
      @Override 
      public void onDrawerOpened(View drawerView) { 
        /** 
         * 抽屜被完全展開(kāi)時(shí),調(diào)用此方法 
         * */ 
      } 
 
      @Override 
      public void onDrawerClosed(View drawerView) { 
        /** 
         * 抽屜被完全關(guān)閉時(shí),調(diào)用此方法 
         * */ 
 
      } 
 
      @Override 
      public void onDrawerStateChanged(int newState) { 
        /** 
         * 抽屜狀態(tài)改變時(shí),調(diào)用此方法 
         * */ 
      } 
    }); 

2、使用SimpleDrawerListener監(jiān)聽(tīng)

  顧名思義,即是DrawerListener的精簡(jiǎn)版,不必實(shí)現(xiàn)DrawerListener的全部回調(diào)函數(shù),可以根據(jù)業(yè)務(wù)需求選擇重寫(xiě)相應(yīng)的方法,用法與DrawerListener一致。

3、配合ActionBar使用的ActionBarDrawerToggle監(jiān)聽(tīng)

  如果Activity中有ActionBar,最好使用ActionBarDrawerToggle進(jìn)行監(jiān)聽(tīng),ActionBarDrawerToggle實(shí)現(xiàn)了DrawerListener,它可以做DrawerListener能做的所有事情,不過(guò)使用ActionBarDrawerToggle監(jiān)聽(tīng),需要選擇重寫(xiě)的方法。
(補(bǔ)充:1、DrawerLayout.openDrawer()和DrawerLayout.closeDrawer()可以打開(kāi)和關(guān)閉側(cè)邊欄。 2、如果側(cè)滑欄的點(diǎn)擊事件穿透到主界面,在該側(cè)滑欄的布局文件的最外層加上 android:clickable="true")

三、不足(亦或是優(yōu)點(diǎn)?)

  和一般的側(cè)滑菜單相比,DrawerLayout的側(cè)滑效果會(huì)浮現(xiàn)在主界面的上方,而不像其他側(cè)滑菜單,不會(huì)遮擋主界面。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論