转载请注明出处:http://blog.csdn.net/zhoubin1992/article/details/46973483
前言
在Trinea的开源项目博文里
https://github.com/Trinea/android-open-project#%E4%B8%89menu
推荐了很多menu开源库。
首先给出Trinea里对SlidingMenu的介绍
滑出式菜单,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单zoom、scale、slide up三种动画样式出现。与MenuDrawer相比而言,SlidingMenu支持菜单动画样式出现,MenuDrawer支持菜单view处于内容的上下层
项目地址:https://github.com/jfeinstein10/SlidingMenu
Demo地址:https://play.google.com/store/apps/details?id=com.slidingmenu.example
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效果被广大应用采用,再后来google推出自己原生态的侧拉菜单NavigationDrawer,但是这个和ActionBar.Tab结合出现不少问题。现在Material Design 风格的导航抽屉应该是最推崇的吧。比如MaterialDrawerMaterial Design 风格的导航抽屉,提供简便且强大的定制功能。
项目地址:https://github.com/mikepenz/MaterialDrawer
SlidingMenu Demo 配置
虽然SlidingMenu已经过时,本着学习开源项目的态度学习SlidingMenu,当然最好的实践是学习他的demo,但是搭建demo时遇到些问题,这里把遇到的问题总结了下。给出正确的打开方式,哈哈。
1. 下载SlidingMenu
开源项目下载地址:
https://github.com/jfeinstein10/SlidingMenu
2. 下载ActionBarSherlock
开源项目下载地址:
https://github.com/JakeWharton/ActionBarSherlock
3. 解压并导入IDE
3. 1 把ActionBarSherlock-master.zip解压后包内的actionbarsherlock导入到eclipse中。
菜单第一项 File –Import –选择库所在位置 导入。
3. 2 把SlidingMenu-master.zip解压后包内的library导入eclipse中。
把actionbarsherlock和library设置为lib项目。
3. 3 在library中,添加actionbarsherlock库项目。因为library库用了actionbarsherlock库。
步骤 右键library——》properties——》Android——》Add选择actionbarsherlock库然后ok。
这里添加后会报错看LogCat会发现library和actionbarsherlock中的android-support-v4.jar版本不一致。
解决方法是将library项目的libs中的android-support-v4.jar删除。
4. 导入demo项目
把SlidingMenu-master.zip解压后包内的example导入eclipse中。这就是我们的demo项目。在example中,引入library库项目。
5. 修改library项目中的三个java文件。
把SlidingActivity.java、SlidingFragmentActivity.java、 SlidingPreferenceActivity.java里的
SlidingActivity extends Activity
SlidingFragmentActivity extends FragmentActivity
SlidingPreferenceActivity extends PreferenceActivity
修改为:
SlidingActivity extends SherlockActivity
SlidingFragmentActivity extends SherlockFragmentActivity
SlidingPreferenceActivity extends SherlockPreferenceActivity
然后三个文件各自导入
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.app.SherlockPreferenceActivity ;
大功告成,可以运行了。
小结
运行后会发现侧拉菜单不会覆盖主界面,而是顶出主界面。这是和NavigationDrawer不同的地方。
同时侧拉菜单打开时会覆盖ActionBar,而NavigationDrawer不会。
再者slidingmenu会不间断进行全局重绘,所以如果动画多了就卡。
版权声明:本文为博主原创文章,未经博主允许不得转载。