開源項目SlideMenu使用詳解
以前搞過一個滑動菜單,是自己重寫發view,實現了基本功能可以滑動顯示,後來看了下SlideMenu的使用,真是非常強大,不但可是簡單的設置實現兩側滑動菜單,還可以設置菜單的陰影、漸變色、劃動模式等,所以還是老實點直接用現成的吧,當然有時間的話還要看先SlideMenu的源碼。這裏先詳細分析下SlideMenu的使用:
準備工作:
1. SlidingMenu 下載地址: https://github.com/jfeinstein10/SlidingMenu
2.下載好後,導入到我們eclipse(也可以新建一個項目,將SlidingMenu項目拷進去)
3. 需要將SlidingMenu設置成is libray.因為我們需要在我們的demo中導入SlidingMenu。
接下來看看SlideMenu怎麼使用:
首先,Activity要繼承自SlidingFragmentActivity,而SlidingFragmentActivity又繼承自SherlockFragmentActivity並實現SlidingActivityBase接口提供相應方法,隻要我們的Activity繼承自SlidingFragmentActivity就行了。
SlideMenu是使用分析:
1、初始化Slidemenu:
- SlidingMenu sm = getSlidingMenu();
2、設置SlideMenu陰影:
- sm.setShadowWidthRes(R.dimen.shadow_width);//陰影寬度
- sm.setShadowDrawable(R.drawable.shadow);//陰影Drawable
- sm..setShadowDrawable(true)//是否有陰影
3、設置SlideMenu來開後離邊框距離:
- sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);//拉開後離邊框距離
4、設置漸變:
- sm.setFadeEnabled(true);/是否有漸變
- sm.setFadeDegree(0.35f);//設置漸變比率
5、設置SlideMenu布局:
- setBehindContentView(R.layout.fr_slide_menu_right_frame);
- getSupportFragmentManager().beginTransaction()
- .replace(R.id.fr_slide_menu_right_frame, new AddChannelFragment()).commit();
.FragmentTransaction類主要用於管理Fragment,有添加,替換,刪除等操作。尤其是beginTransaction()與commit()方法與SQL中的事務有點類似。
6、設置模式:
sm.setMode(SlidingMenu.RIGHT);//菜單右邊顯示
SlidingMenu.LEFT 菜單左邊顯示;SlidingMenu.LEFT_RIGHT菜單兩側顯示。
注意:菜單兩側顯示的時候,既然顯示兩個就應該設置兩個布局,需要設置第二個布局:
- // 設置左右側都有
- sm.setMode(SlidingMenu.LEFT_RIGHT);
- // 此時要再次添加布局菜單,上一個為左側,這個為右側
- sm.setSecondaryMenu(R.layout.menu_frame_two);
- getSupportFragmentManager()
- .beginTransaction()
- .replace(R.id.menu_frame_two,
- new SampleListFragment()).commit();
- sm.setSecondaryShadowDrawable(R.drawable.shadowright);
7、設置劃動模式:
- sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏滑動
SlidingMenu.setTouchModeAbove().其中一共包含三中手勢模式:
TOUCHMODE_FULLSCREEN 全屏模式,在正文布局中通過手勢也可以打開SlidingMenu
TOUCHMODE_MARGIN 邊緣模式,在正文布局的邊緣處通過手勢可以找開SlidingMenu
TOUCHMODE_NONE 自然是不能通過手勢打開SlidingMenu了
8、設置SldingMenu自動判斷當前是打開還是關閉:
- toggle();
9、設置縮放比例:
- // 放縮比例
- getSlidingMenu().setBehindScrollScale((float)0.5);
是不是很簡單,隻要設置下屬性就能實現菜單效果,當然要自己添加自己的布局文件。
最後更新:2017-04-03 05:39:36