1. 程式人生 > >Android Studio SlidingMenu 開源專案使用案例

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開源專案:

: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

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <FrameLayoutxmlns: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

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <FrameLayoutxmlns: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 檔案如下:


實現完成的效果如下:


程式碼下載:

相關推薦

Android Studio SlidingMenu 開源專案使用案例

Android SlidingMenu 開源專案使用 1. SlidingMenu簡介: SlidingMenu是一個強大的側邊欄導航框架: 是目前比較流行的設定主介面或配置介面介面的UI顯示,在主介面左滑或者右滑出現 設定介面,能方便的進行選單各種操作。 目

Android studio Github 開源專案依賴新增失敗解決方法 Failed to resolve

AndroidStudio雖然好用也很智慧,但是有時會報一些奇奇怪怪的錯誤,提示的資訊又不清不楚的,就簡單幾個字Failed to resolve,鬼知道我是怎麼resolve不了,這次遇到一個問題,就是在Gradle裡compile GitHub的開源專案時候怎麼syn

Android Studio匯入開源專案的正確姿勢

有時候當我們匯入開源專案的時候 會卡頓甚至宕機 這是因為我們本地已有的配置和開源專案的不一樣 這時候android studio就會去下載 而且下載是要翻牆的 所以會出現這種情況 那麼我們怎麼避免下載沒用的資源呢 請看: 第一步: 開啟 開源專案的

Android studio匯入開源專案問題解決彙總

1、Connection to the Internet denied。將應用匯入後報網路連線拒絕 2、Error:No service of type Factory<LoggingMana

Android Studio 匯入開源專案的正確姿勢

報錯:Error:(2, 0) Plugin with id 'realm-android' not found.注意:專案中用到的外掛,需要根目錄下的build.gradle中新增它classPath, 執行下面的build.gradle檔案覆蓋前先檢查下,或者備份一個。當我們在Github上看到優秀的專案

Android Studio自己的專案中使用GitHub開源

很早就知道在GitHub上有很多優秀的Android開源庫,這兩天在AS上配置了Git,然後嘗試在GitHub上導了一個開源庫到自己的專案中,結果特別酷炫,有一種發現新大陸的感覺。當然,過程難免會碰到一些問題,在這裡和各位看官分享一下,希望能夠幫到正在查閱相關問

Android Studio無法執行專案:app:transformClassesWithDependencyCheckerForDebug

專案之前執行正常,後莫名出現的一個如下一個錯誤,專案執行不起來 Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestD

Android Studio匯入gradle專案問題解決

        放棄了eclipse轉投Android Studio,發現原來的import project 都變得麻煩了許多,記錄一下匯入一個專案遇到的各種坑, 可能以後還會遇到,也可以為他人作個參考。  &n

android studio 新建一個專案,卻出現Design editor is unavailable until after a successful project sync

android studio 新建一個專案,卻出現Design editor is unavailable until after a successful project sync waiting for build to finish 點選工具欄File -> sync proje

Android Studio在建立專案是一直處於building “project name”gradle project info 解決方案

公司做專案,需要做安卓,做為java的我承擔了重任,由於我們國家限制我們“上網”(外網),讓我浪費了半天時間,最後出現,如圖所示錯誤: 才開始我以為是我網路的問題,等了好幾個小時,最後找到問題的原因了 ,就是gradle在作怪。 解決方法如下: 檢視gradle版本:檢視目

Android Studio中上傳專案到碼雲時的一些問題

最近工作室開展以交流棧分享所學的知識,需要把程式碼上傳到碼雲,然後我按照網上的一些教程上傳的時候,卻遇到了很多的問題,下面是對我遇到的問題的總結。 如果還不知道怎麼把Android Studio中的專案上傳到碼雲的可以看下面的一條部落格,裡面寫的挺詳細的: http://

Android Studio匯入新專案,gradle報 read timed out的情景之一

我使用Android Studio3.0匯入新專案時,gradle報 read timed out的情景之一: 由於專案的sdk沒有使用自己下載的jdk1.8,而是使用AndroidStudio預設的jre目錄,所以導致這個問題 。只要修改下jdk路徑就好: 但是改完後,這個問題是解決

Android studio執行RN專案,Node突然閃退解決方案

一個完整的app執行出現的Bug 一.node閃退的問題 二.註釋檔案的問題 問題一:node閃退的問題 在我這次的實際專案執行中,好像是因為build檔案裡面有問題導致的node報錯閃退,說明是編譯的錯誤,因為我這個專案是RN和Android混合開發的,所

利用Android Studio 上傳專案到 github

本文章來自轉載,原連結為:https://blog.csdn.net/jhj_24/article/details/73468431 利用Android Studio 上傳專案到 github 1、準備 安裝Androidstudio並新建一個工程; 安裝git版本控制系統.如Git GUI

如何在Android Studio中複製專案

很多時候都需要在不影響當前工程的前提下,對該工程進行一定的修改,或者進行一些嘗試,或者乾脆在該工程基礎上新增更多內容。 該如何複製呢?還要不能在複製工程後對原工程進行覆蓋,需要修改的位置有3處。 1、Java類程式的程式包名稱。 2、應用程式的程式包名稱。 3、在Gr

Android 收集的開源專案和文章集合

2017-12-212.炫酷開屏動畫框架3.防京東,支付寶密碼鍵盤和密碼輸入框4.根據銀行卡號 獲取 銀行卡型別、銀行名稱和銀行編碼 自動格式化銀行卡號、手機號、身份證號輸入的工具類5.高仿 iOS 滾輪實現 省市區 城市選擇三級聯動6.驗證碼輸入框控制元件.7.輕量級提示框,載入中、成功、失敗、警告等,以及

Android 之 Telegram 開源專案

使用 Android Studio 來編譯執行(第一次使用 Android Studio 來執行正式專案) 先按指引上 Telegram 官網申請 app id 等資訊。 然後,就可以正常啟動了。 對於我們來說,裡面太多可以學習的東西了: 基礎元件:Android

Android Studio中將moudle專案打包成aar檔案

轉載:https://blog.csdn.net/cangahi09025566/article/details/80278129 為了方便以後好尋找,轉載一篇文章 在android開發中,我們有時候需要將一個專案作為一個依賴,並且能夠使用其資原始檔和介面,這個時候就需要將我們建立的moud

使用android studio將eclipse專案改造成gradle專案中踩過的坑

       本文中部分內容是看過了張大神的部落格後分享出來的。        其實android studio使用起來和之前習慣用eclipse開發區別並不大,只是一些快捷鍵發生了變化,這個是需要你

android Studio 執行的專案package包名報紅

當你執行別人的專案或者是新建立的專案,包名報紅,但是能執行,也不報錯。有的人不喜歡出現一條紅線。我來幫大家解決這個問題 包名底下有一個紅線。 出現這條紅線的原因: 1.開啟你所執行的專案的build.gradle ``` compileSd