1. 程式人生 > >Android - Navigation Drawer

Android - Navigation Drawer

layout you 理由 -s tails 側滑 導航欄 close 抽象

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