SlidingMenu的应用

近来侧滑菜单的兴起也让Android程序更具有好的体验。本文就开源项目SlidingMenu来实现。

先去github下载开源库。

1.打开Eclipse导入libs (注意导入的时候选择copye to workspace) 好像如果库所在文件夹位置与工作区不在同一个磁盘会有错误  ,Eclipse中的库好像是使用相对路径)

2.新建工程,由于SlidingMenu中已经包含了V4包,所以会有包冲突的问题,因此建立好工程后,把依赖的V4包从路径中删除,并从工程的libs里删除该jar文件。

3.右键工程,选择Properties(属性),选择 Android ,在最下面libs里 add 即可导入SlidingMenu库到工程里。

Ok,环境就已经搭建好咯,接下来就可以来写代码吧。

SlidingMenu 对象的实现有两种,一种是new,另一种是get 。

一种,如果你的Activity是继承android.app.Activity 则需要new出来。

第二种,我们也可以继承SlidingMenu开源包里的SlidingActivity 。则只要get 就行。后面的代码会告诉大家。

在写之前我想说的是,先搞清楚SlidingMenu的结构也就是说我们要构建它的话需要准备些什么,这样才知道自己要做什么?我的理解是 ,通过事件让侧边菜单显示出来,

所以就会有个主界面和菜单界面了(左、右2个)那对应的不是需要各自的Layout文件了。所以我们就需要准备主界面Layout和菜单Layout。然后滑动的时候显示出来或者用Fragment来替代显示出来。这点很重要,所以看代码吧。

第一种new  :

 
 menu = new SlidingMenu(this);//实例化菜单     
menu.setMode(SlidingMenu.LEFT);//侧滑模式        
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); //全屏       
menu.setShadowWidth(20);     //阴影  
 menu.setFadeDegree(0.25f);//过渡渐变        
menu.setBehindWidth(200);//设置侧滑菜单要显示的宽度
//附加到主界面     
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
// 设置侧滑菜单
menu.setMenu(R.layout.menu_left);


侧滑菜单布局文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/left_menu"
    android:background="#110000"
    >
</FrameLayout>

Ok,运行试试看。已经出来了。很简单咯。。

 

第二种 get,你的Activity继承的不是Andorid的而应该是SlidingActivity 即可

然后:menu = getSlidingMenu(); 得到

然后设置侧滑菜单布局:

this.setBehindContentView(R.layout.menu_left);

其他的菜单设置一样 就不啰嗦了。

 

以上都可以实现了。

为了更加方便的使用,一般的我们都会用ViewPager+Fragment来实现 会更加的方便。

那思路是怎样的呢?其实跟上面的一样,只是要菜单显示的内容用Fragment来代替了而已。

还要注意一个问题,当主界面是用ViewPager的话,会跟菜单有冲突,所以需要将参数设置为:

menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); 这样才可以。

 设置主界面继承于 FragmentActivity (V4包)。

其他的都差不多了,希望大家都明白了……有什么问题就留言吧 尽量帮你解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值