日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android SlidingMenu 开源项目 侧拉菜单的使用(详细配置)

發布時間:2025/6/15 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android SlidingMenu 开源项目 侧拉菜单的使用(详细配置) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SlidingMenu作為最常用到的幾個開源項目之一,最初,這個是在IOS上有的,之后被應用到了android上,在google自己原生態的側拉菜單NavigationDrawer沒出現之前,這個效果已經被很多應用所使用。比如今日頭條,網易新聞,人人客戶端等等。

由于最近項目用到,所以把相關使用和配置記錄下來。

Github上的下載地址為:下載地址


國外用到該庫的應用APP:
  • Foursquare
  • LinkedIn
  • Zappos
  • Rdio
  • Evernote Food
  • Plume
  • VLC for Android
  • ESPN ScoreCenter
  • MLS MatchDay
  • 9GAG
  • Wunderlist 2
  • The Verge
  • MTG Familiar
  • Mantano Reader
  • Falcon Pro (BETA)
  • MW3 Barracks
使用方法: 一.首先導入SlidingMenu這個庫文件 eclipse中的流程:菜單第一項 ?File --Import --選擇庫所在位置 導入 可以看到庫的結構為: ? 你可以直接繼承app這個包中的SlidingActivity,SlidingFragmentActivity,SlidingListActivity等這幾個類去實現這個效果, 或則直接在你的項目中的主類文件中初始化SlidingMenu,并進行配置后使用。 SlidingMenu類的源碼中,
你可以看到,它實際上是繼承了RelativeLayout之后去賦予你給定的layout布局,然后置于你項目的左側或則右側。 蠻多大神都是自己定義一個這樣的VIEW自己去實現這個效果,這個庫就是提供了一個方便的途徑。
二.在你的項目中引入SlidingMenu這個庫 eclipse中的流程:右擊你的項目 -- Properties -- Android ?-- Add ?選擇SlidingMenu庫 注意:可能這時你的項目會出錯或則運行時候出錯,原因就是SlidingMenu庫中已經帶有了android-support-v4.jar這個官方架包,如果你在自己的項目中也帶有這個架包的話,可能就會造成版本沖突,如果沖突了,你可以把自己項目中libs文件夾中的這個架包給刪除了。
三.在你的項目中使用這個SlidingMenu 我喜歡把SlidingMenu自定義成一個類,之后去初始化,這樣可以減少主要activity中的代碼份量,維護起來會方便的。 用代碼實現SlidingMenu這個控件: [java] view plaincopy
  • public?SlidingMenu?initSlidingMenu(Activity?activity)?{??
  • ????????SlidingMenu?localSlidingMenu?=?new?SlidingMenu(activity);??
  • ????????localSlidingMenu.setMode(SlidingMenu.LEFT_RIGHT);//設置左右滑菜單??
  • ????????localSlidingMenu.setTouchModeAbove(SlidingMenu.LEFT);//設置要使菜單滑動,觸碰屏幕的范圍??
  • ????????//localSlidingMenu.setTouchModeBehind(SlidingMenu.RIGHT);??
  • ????????localSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//設置陰影圖片的寬度??
  • ????????localSlidingMenu.setShadowDrawable(R.drawable.shadow);//設置陰影圖片??
  • ????????localSlidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//設置劃出時主頁面顯示的剩余寬度??
  • <span?style="white-space:pre">??????</span>localSlidingMenu.setFadeEnabled(true);//設置滑動時菜單的是否漸變?????<span?style="white-space:pre">??????????????</span>localSlidingMenu.setFadeDegree(0.35F);//<span?style="font-family:?Helvetica,?arial,?freesans,?clean,?sans-serif;">設置</span>滑動時的漸變程度??
  • ????????localSlidingMenu.attachToActivity(activity,?SlidingMenu.RIGHT);//使SlidingMenu附加在Activity右邊??
  • //??????localSlidingMenu.setBehindWidthRes(R.dimen.left_drawer_avatar_size);//設置SlidingMenu菜單的寬度??
  • ????????localSlidingMenu.setMenu(R.layout.left_drawer_fragment);//設置menu的布局文件??
  • ????????localSlidingMenu.toggle();//動態判斷自動關閉或開啟SlidingMenu??
  • ????????localSlidingMenu.setOnOpenedListener(new?SlidingMenu.OnOpenedListener()?{??
  • ????????????????????public?void?onOpened()?{??
  • ??????????????????????????
  • ????????????????????}??
  • ????????????????});??
  • ????????return?localSlidingMenu;??
  • ????}??
  • 配置設定方法中?setMode() 是常用屬性有: 1)SlidingMenu.LEFT ? ?左測菜單 2)SlidingMenu.RIGHT ? 右側菜單 3)SlidingMenu.LEFT_RIGHT ? ?左右2測菜單? 注意:如果是1)或則 ?2) 的話,menu界面只用setMenu()就可以設定了 ? ?如果是3)的話,必須在加上setSecondaryMenu()這個方法 [java] view plaincopy
  • <span?style="white-space:pre">??????</span>localSlidingMenu.setMenu(R.layout.left_drawer_fragment);//設置左測menu的布局文件??
  • ????????localSlidingMenu.setSecondaryMenu(R.layout.profile_drawer_right);<span?style="font-family:?Helvetica,?arial,?freesans,?clean,?sans-serif;">//設置右測menu的布局文件</span>??
  • ????????localSlidingMenu.setSecondaryShadowDrawable(R.drawable.shadowright);//設置右側陰影文件??
  • 配置設定方法中?setTouchModeAbove() 是常用屬性有: 1)SlidingMenu.LEFT ? ?在左測進行拖動才會相應MENU的拖動效果 2)SlidingMenu.RIGHT ?在右測進行拖動才會相應MENU的拖動效果 3)SlidingMenu.TOUCHMODE_FULLSCREEN ? ?全屏可以拖動 配置設定方法中?attachToActivity(Activity activity, int slideStyle)中slideStyle常用屬性有: 1)SlidingMenu.LEFT ? ? 2)SlidingMenu.RIGHT ?? 3)SlidingMenu.ABOVE? ?? 配置設定中以下方法的效果是一樣的,可是實現方式不一樣: [java] view plaincopy
  • <span?style="white-space:pre">??</span>localSlidingMenu.setShadowWidthRes(R.dimen.shadow_width);//設置陰影圖片的寬度??
  • ????localSlidingMenu.setShadowWidth(100);//設置陰影圖片的寬度??
  • 第一個是從資源文件中獲取 ,第二種是直接設定給它,注意,第二種設定的是像素,所以一般建議用第一種方式,其它有的方法結構一樣也是類似,以此類推。
    這樣便配置完成了SlidingMenu,之后你可以去調用以下方法實現SlidingMenu的動作效果: 1)localSlidingMenu.showContent(); ?//隱藏Menu菜單 2)localSlidingMenu.showMenu(); ?//顯示Menu菜單 3)localSlidingMenu.showSecondaryMenu(); ?//顯示Menu第2個菜單
    4)localSlidingMenu.setOnOpenListener(OnOpenListener listener); ?設置Menu菜單的打開監聽
    5)localSlidingMenu.setOnCloseListener(OnCloseListener listener);? 設置Menu菜單的關閉時候的監聽(when)
    6)localSlidingMenu.setOnClosedListener(OnClosedListener listener);; ?設置Menu菜單的關閉后的監聽(after ,和方法4是有區別的)
    和一些判斷:
    1)Boolean 類型:localSlidingMenu.isMenuShowing(); 判斷menu菜單是否是顯示的,顯示的話返回true,反之false。
    ?? localSlidingMenu.isSecondaryMenuShowing(); 判斷menu的第2個菜單是否是顯示的,顯示的話返回true,反之false。

    上面的流程設定的menu是通過設定layout給定的布局文件,而有的人喜歡把側拉菜單使用塊Fragment去管理,那么可以繼承架包中的SlidingFragmentActivity方法去實現。
    下面是我找到的一個相關帖子,我這里就不做總結了,里面有怎么去用Fragment實現menu.點我

    上面講好了用代碼的方式去實現menu側拉菜單,下面說說如何在布局xml文件中實現類似的效果。
    其實就是把SlidingMenu作為一個view,在布局文件中配置實現。 [html] view plaincopy
  • <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu??
  • ????xmlns:sliding="http://schemas.android.com/apk/res-auto"??
  • ????android:id="@+id/slidingmenulayout"??
  • ????android:layout_width="fill_parent"??
  • ????android:layout_height="fill_parent"??
  • ????sliding:viewAbove="@layout/YOUR_ABOVE_VIEW"??
  • ????sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND"??
  • ????sliding:touchModeAbove="margin|fullscreen"??
  • ????sliding:behindOffset="@dimen/YOUR_OFFSET"??
  • ????sliding:behindWidth="@dimen/YOUR_WIDTH"??
  • ????sliding:behindScrollScale="@dimen/YOUR_SCALE"??
  • ????sliding:shadowDrawable="@drawable/YOUR_SHADOW"??
  • ????sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH"??
  • ????sliding:fadeEnabled="true|false"??
  • ????sliding:fadeDegree="float"??
  • ????sliding:selectorEnabled="true|false"??
  • ????sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/>??
  • 類似于這樣,它的相關屬性配置和代碼是一樣的,只是換成了布局中設定相關屬性而已。

    使用過程中發現的問題: 1)設置了這個屬性后localSlidingMenu.setTouchModeBehind(SlidingMenu.RIGHT);
    會發生測拉菜單按鈕等的焦點被奪走或失效,所以這個屬性最好不好設了。 2)關于SlidingMenu的引發的原生動畫不流暢的問題

    總結

    以上是生活随笔為你收集整理的Android SlidingMenu 开源项目 侧拉菜单的使用(详细配置)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。