slidingmenu是一個很是流行的開源組件,能夠實現側滑菜單的效果.
下面來說解下怎麼使用,集成的方式有3種方式.
1. 經過編程的方式把Activity包裝進SlidingMenu裏,以下所示:
java
menu = new SlidingMenu(this); // 設置SlidingMenu各類屬性 menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setShadowWidthRes(R.dimen.shadow_width); menu.setShadowDrawable(R.drawable.shadow); menu.setBehindOffsetRes(R.dimen.slidingmenu_offset); menu.setFadeDegree(0.35f); //把Activity附着到SlidingMenu menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); //設置側邊的菜單的layout menu.setMenu(R.layout.menu_frame);
public class BaseActivity extends SlidingFragmentActivity{ //... public void onCreate(Bundle savedInstanceState) { //.... // customize the SlidingMenu SlidingMenu sm = getSlidingMenu(); //經過父類的getSlidingMenu獲得SlidingMenu sm.setShadowWidthRes(R.dimen.shadow_width); sm.setShadowDrawable(R.drawable.shadow); sm.setBehindOffsetRes(R.dimen.slidingmenu_offset); sm.setFadeDegree(0.35f); sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //... }
<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" <!--這裏放底下的Menu視圖--> 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"/>
好的title獲得要啓動的Activity的類,而後把它包裝在Intent中,最後startActivity啓動這個Activity. android
Class<?> cls = null; String title = pref.getTitle().toString(); if (title.equals(getString(R.string.properties))) { cls = PropertiesActivity.class; } else if (title.equals(getString(R.string.attach))) { cls = AttachExample.class; Intent intent = new Intent(this, cls); startActivity(intent); return true;AttachExample演示了經過代碼menu = new SlidingMenu(this)的最基本的方式使用SlidingMenu的方法. BaseActivity是多個例子Activity的基類,定義了基本的Behind View及設置了SlidingMenu的一些屬性,但有很 重要的一點的它沒有定義Above View,由於Above View表示的是內容界面,是留給子類來實現的,子類有這些: FragmentChangeActivity PropertiesActivity LeftAndRightActivity,演示左右兩邊均可滑出菜單功能 SlidingContent,演示只滑動內容界面功能//setSlidingActionBarEnabled(false); SlidingTitleBar,演示可滑動ActionBar標題功能//setSlidingActionBarEnabled(true); ViewPagerActivity,演示結合ViewPager的使用方法,這在新聞類應用中很是常見,與網易新聞相似. com.jeremyfeinstein.slidingmenu.example.anim這個包演示了滑出菜單時動畫效果的設置,可安裝DEMO APP 體驗下效果. 以上就是SlidingMenu最多見的功能與方法,細枝末節的地方可直接參考源碼.