Android - Navigation Drawer

來源:互聯網
上載者:User

標籤:google   控制項   ref   內容   都差不多   簡介   http   cbe   版本相容   

http://www.jianshu.com/p/c8cbeb7ea43a

用Navigation Drawer 和 Navigation View 來實現左右側滑

Activity裡甚至什麼都不用寫

 

NavigationDrawer 簡介

NavigationDrawer 是 Google 在 Material Design 中推出的一種側滑導覽列設計風格。說起來可能很抽象,我們直接來看看 網易雲音樂 的側滑導覽列效果

Google 為了支援這樣的導航效果,推出一個新控制項 —— DrawerLayout 。而在 DrawerLayout 沒誕生之前,需求中需要實現側滑導航效果時,我們必然會選擇去選擇一些成熟的第三方開源庫(如最有名的 SlidingMenu)來完成開發 。

 

在對比過 DrawerLayoutSlidingMenu 的實現效果後,基於以下的幾點,我認為完全可以在開發中使用 DrawerLayout 取代以前的 SlidingMenu

  1. 從動畫效果上看,你會發現兩者僅僅是在移動的效果上有些差別外,其他地方並沒有太大的差異
  2. 在互動效果上,我認為這兩者都差不多的,就算你把 網易雲音樂 的效果套到了 手Q 上,也不會影響到使用者的互動
  3. DrawerLayout 用起來比 SlidingMenu 更簡單,代碼量更少(往下看就知道了)
  4. DrawerLayout 是向下相容的,所以不會存在低版本相容性問題
  5. Google 親兒子,沒理由不支援啊!!!!!!

到這裡,要是你還沒有引入 DrawerLayout 開發的衝動,請繼續聽我為你好好安利一番。

 

一般情況下,在 DrawerLayout 布局下只會存在兩個子布局,一個 內容布局 和 一個 側滑菜單布局,這兩個布局關鍵在於 android:layout_gravity 屬性的設定。如果你想把其中一個子布局設定成為左側滑菜單,只需要設定 android:layout_gravity="start" 即可(也可以是 left,右側滑則為 end 或 right ),而沒有設定的布局則自然成為 內容布局

再識 NavigationView

在 Google 推出 NavigationDrawer 設計中,NavigationViewDrawerLayout 是官方推薦的最佳組合。在使用 NavigationView 前,因為它是在 Material Design 的相容包中,所以需要先在 build.gradle 中引入

    compile ‘com.android.support:design:23.1.1‘

 

 

ActionBarDrawerToggle

實現返回圖片和動畫效果

http://blog.csdn.net/chencehnggq/article/details/21492417

http://blog.csdn.net/zxm317122667/article/details/50989346

ActionBarDrawerToggle就是DrawerLayout事件的監聽器

ActionBarDrawerToggle有3個方法可以被複寫,分別用來實現DrawerLayout開啟,關閉,滑動的事件監聽:

onDrawerOpened DrawerLayout滑出時調用

onDrawerClosed DrawerLayout關閉時調用

onDrawerSlide DrawerLayout滑動時調用

Android - Navigation Drawer

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.