开源项目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);
是不是很简单,只要设置下属性就能实现菜单效果,当然要自己添加自己的布局文件。
这两天想弄一个APP的侧滑菜单,网上有很多的方法去实现,看到SlidingMenu,感觉很兴奋、很强大,但是从GitHub上下载后出现了很多的问题,今天刚好看到一篇文章详细的讲述了使用过程,如何解除使用过程出现的问题。在此转载这篇文章。原文网址
GitHub上的SlidingMenu的配置方法
1. 首先明确SlidingMenu是什么?
SlindingMenu 是github上的大神写得一个侧滑菜单框架!
2. 如何使用SlidingMenu框架呢?
首先你需要在下载两个开源库两个zip格式的文件
1.SlidingMenu开源项目下载地址:https://github.com/jfeinstein10/slidingmenu中的SlidingMenu-master.zip
2.Actionbarsherlock开源项目下载地址:http://actionbarsherlock.com中的JakeWharton-ActionBarSherlock-4.4.0-0-g4a79d53.zip
3.然后分别解压这两个文件的得到
SlidingMenu-master.zip
JakeWharton-ActionBarSherlock-4.4.0-0-g4a79d53.zip
将这两个文件夹下面的工程导入eclipse
SlidingMenu-master下面的library工程
JakeWharton-ActionBarSherlock-4.4.0-0-g4a79d53文件夹下面的actionbarsherlock
如图:我用红色框标记出来的
然后将actionbarsherlock库添加到library中因为library库用了actionbarsherlock库
步骤 右键library------》properties------》Android------》Add选择actionbarsherlock库然后ok
如图
这是可能回报错因为library和actionbarsherlock中的android-support-v4.jar版本不一致解决方法是将library中的android-support-v4.jar删除将actionbarsherlock中的android-support-v4.jar复制到actionbarsherlock中然后Clear一下这两个工程
最后运行导入SlidingMenu-master下面的example工程
然后向ExampleListActivity (ps:你导入的example工程)工程添加到library和actionbarsherlock两个库最后Clear一下整个工程
如图
打开SlidingMenu library project里SlidingFragmentActivity这个类并在声明前添加以下代码:
import com.actionbarsherlock.app.SherlockFragmentActivity;
然后,将下面这个父类:
public class SlidingFragmentActivity extends FragmentActivity implements SlidingActivityBase
换成Actionbarsherlock里的另外一个父类(如果此时Library没有引用Actionbarsherlock库项目,则先引用之):
public class SlidingFragmentActivity extends SherlockFragmentActivity implements SlidingActivityBase
运行 ExampleListActivity工程
效果图
最后注意:如果你要自己新建SlidingMenu项目那么必须将你的工程跟actionbarsherlock和library放在同一个文件夹不然你无法将这些库添加到你的工程里面