Android Studio SlidingMenu 開源項目使用案例

Android SlidingMenu 開源項目使用


1. SlidingMenu簡介:

SlidingMenu是一個強大的側邊欄導航框架:

是目前比較流行的設置主界面或配置界面界面的UI顯示,在主界面左滑或者右滑出現

設置界面,能方便的進行菜單各種操作。


目前主流 App 的導航欄一般有兩種:

一種是:主界面上面 3-4 個 Tab 下面搭配 ViewPager +Fragment,

另一種就是:側邊欄(如知名app 網易新聞,知乎等等這些app都使用側邊欄導航)。所以主導航超過 3 個 Tab 時,建議使用側邊

欄作爲 App 的主導航。


SlidingMenu 是一個強大的側邊欄導航框架,並且已經被一些比較牛的 App 使用

主要特點如下:


(1) 側邊欄可以是一個 Fragment,包含任何 View


(2) 使用簡單方便,支持左滑和右滑等


(3) 自定義側邊欄顯示動畫 



2.SlidingMenu 總體由三個主要的類組成


(1) SlidingMenu 繼承自 RelativeLayout,對外暴露 API 給用戶,同時在添加 CustomViewAbove 和 CustomViewBehind


(2) CustomViewAbove 繼承自 ViewGroup,主要用來處理觸摸屏事件


(3) CustomViewBehind 繼承自 ViewGroup,主要用來配置參數顯示側邊欄的 Menu 部分    


3.SlidingMenu 常用屬性介紹:


menu.setMode(SlidingMenu.LEFT);如果只顯示左側菜單就是用LEFT,右側就RIGHT,左右都支持就LEFT_RIGHT 


menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//設置爲全屏區域都可以滑動 


menu.setShadowDrawable(R.drawable.shadow);//設置陰影圖片 


menu.setShadowWidthRes(R.dimen.shadow_width);//設置陰影圖片的寬度 


menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu滑出時主頁面顯示的剩餘寬度 


menu.setBehindWidth(400);//設置SlidingMenu菜單的寬度 


menu.setFadeDegree(0.35f);//SlidingMenu滑動時的漸變程度 


menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上 


menu.setMenu(R.layout.menu_layout);//設置menu的佈局文件 


menu.toggle();//動態判斷自動關閉或開啓SlidingMenu 


menu.showMenu();//顯示SlidingMenu 


menu.showContent();//顯示內容 


menu.setOnOpenListener(onOpenListener);//監聽slidingmenu打開時,【這個方法對右邊的slidingmenu是無效的】


slidingMenu.setOnOpenedListener(OnOpenedListener);//監聽slidingmenu完全打開 


menu.OnClosedListener(OnClosedListener);//監聽slidingmenu關閉時事件 


menu.OnClosedListener(OnClosedListener);//監聽slidingmenu關閉後事件


menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右側菜單的陰影圖片





4.SlidingMenu 實例:


4.1 SlidingMenu github開源項目:

   SlidingMenu 開源項目 github地址:https://github.com/jfeinstein10/SlidingMe

在gitHub 下載下來後,主要使用的 SlidingMenu項目 的 library 部分
















很多老教程SlidingMenu都是基於ActionBarSherlock庫纔可運行,而在現最新的android studio下是不需要那樣的

而且不用直接引入library的新用法。

新建實例測試工程,新建文件夾 libslidingmenu。拷貝開源項目上圖紅色標註的library 庫中 src\com\jeremyfeinstein\slidingmenu\lib 下所有文件到

新建文件夾 libslidingmenu 中,修改對應的包名和引入路徑即可

 如下圖:






















Test 實例詳解:

1. 首先MianActivity需要繼承自libslidingmenu app 包下的SlidingFragmentActivity
2. MianActivity setContentView(R.layout.content_frame);//該layout爲一個全屏的FrameLayout
3.  setBehindContentView(R.layout.menu_frame);//設置SlidingMenu使用的佈局,同樣是一個全屏的FrameLayout

必須使用FrameLayout 的佈局,整個界面被當成一塊空白備用區域 ,佈局新添加元素可以覆蓋之前的子元素


佈局代碼如下:

frame_content.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/content"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" />  

frame_left_menu.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/menu"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" />  

MainActivity 繼承 SlidingFragmentActivity 代碼:

主要實現的是左側側滑功能,設置leftmenu 主要代碼如下



LeftFragment 實現一個listView 主要代碼如下:



build 文件如下:




實現完成的效果如下:




代碼下載:




發佈了60 篇原創文章 · 獲贊 28 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章