开源项目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:

[java] view
plain
copy

  1. SlidingMenu sm = getSlidingMenu();  

2、设置SlideMenu阴影:

[java] view
plain
copy

  1. sm.setShadowWidthRes(R.dimen.shadow_width);//阴影宽度     
  2.  sm.setShadowDrawable(R.drawable.shadow);//阴影Drawable  

[java] view
plain
copy

  1. sm..setShadowDrawable(true)//是否有阴影  

3、设置SlideMenu来开后离边框距离:

[java] view
plain
copy

  1. sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);//拉开后离边框距离     

4、设置渐变:

[java] view
plain
copy

  1. sm.setFadeEnabled(true);/是否有渐变    
  2. sm.setFadeDegree(0.35f);//设置渐变比率  

5、设置SlideMenu布局:

[java] view
plain
copy

  1. setBehindContentView(R.layout.fr_slide_menu_right_frame);  
  2.   
  3. getSupportFragmentManager().beginTransaction()  
  4.         .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菜单两侧显示。

注意:菜单两侧显示的时候,既然显示两个就应该设置两个布局,需要设置第二个布局:

[java] view
plain
copy

  1. // 设置左右侧都有  
  2. sm.setMode(SlidingMenu.LEFT_RIGHT);  
  3. // 此时要再次添加布局菜单,上一个为左侧,这个为右侧  
  4. sm.setSecondaryMenu(R.layout.menu_frame_two);  
  5. getSupportFragmentManager()  
  6.         .beginTransaction()  
  7.         .replace(R.id.menu_frame_two,  
  8.            new SampleListFragment()).commit();  
  9. sm.setSecondaryShadowDrawable(R.drawable.shadowright);  

7、设置划动模式:

[java] view
plain
copy

  1. sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏滑动  

SlidingMenu.setTouchModeAbove().其中一共包含三中手势模式:
TOUCHMODE_FULLSCREEN 全屏模式,在正文布局中通过手势也可以打开SlidingMenu
TOUCHMODE_MARGIN 边缘模式,在正文布局的边缘处通过手势可以找开SlidingMenu
TOUCHMODE_NONE 自然是不能通过手势打开SlidingMenu了

8、设置SldingMenu自动判断当前是打开还是关闭:

[java] view
plain
copy

  1. toggle();  

9、设置缩放比例:

[java] view
plain
copy

  1. // 放缩比例  
  2. getSlidingMenu().setBehindScrollScale((float)0.5);  

是不是很简单,只要设置下属性就能实现菜单效果,当然要自己添加自己的布局文件。

转载自:http://blog.csdn.net/xiangxue336/article/details/20382835

时间: 2024-08-04 21:21:54

开源项目SlideMenu使用详解的相关文章

vue.js+boostrap项目实践(案例详解)_javascript技巧

一.为什么要写这篇文章 最近忙里偷闲学了一下vue.js,同时也复习了一下boostrap,发现这两种东西如果同时运用到一起,可以发挥很强大的作用,boostrap优雅的样式和丰富的组件使得页面开发变得更美观和更容易,同时vue.js又是可以绑定model和view(这个相当于MVC中的,M和V之间的关系),使得对数据变换的操作变得更加的简易,简化了很多的逻辑代码. 二.学习这篇文章需要具备的知识 1.需要有vue.js的知识 2.需要有一定的HTML.CSS.JavaScript的基础知识 3

App域名劫持之DNS高可用 - 开源版HttpDNS方案详解(转)

  http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209805123&idx=1&sn=ced8d67c3e2cc3ca38ef722949fa21f8&3rd=MzA3MDU4NTYzMw==&scene=6#rd 主题 开源 本文根据冯磊和赵星宇在"高可用架构"微信群所做的HttpDNS智能缓存库原理整理而成,转发请注明来自微信公众号ArchNotes. 冯磊,目前主要从事手机应用平

Android项目基本结构详解_Android

一.简介 第3章虽然通过百度地图应用展示了你可能感兴趣的内容,但是,如果你是一个初学者,一开始就看懂和理解代码可能会非常费劲.为了解决此问题,从这一章开始,本模块将从最基本的内容讲起,带你逐步进入用C#进行Android应用开发的乐园. 二.AndroidApp入口 要用C#开发Android应用程序,首先需要对项目的基本结构有一个感性认识.如下图所示: Android应用程序使用的是单一入口,源程序中并不能一眼看出程序从哪开始运行,当应用程序加载到内存中时,Android操作系统会自动从内部自

Android——Android lint工具项目资源清理详解_Android

Android--Android lint工具项目资源清理 最近维护的项目已经有两年多,经过很多前辈的迭代,项目并没有变得健壮,而变得很臃肿.用Android lint工具清理了一次,清楚了不少废弃的布局和资源. 1.     Android lint工具 可以右键项目,Android tools,退出的时候clear lint markers即可 也可以如图: 2.结果出来了,分析分析 3.xml中view太多,已经超过了80个,影响性能. 布局优化: 尽量使用include.merge.Vi

开源云平台CloudStack详解

CloudStack 2008年由VMOPS开发,在2010年5月份,VMOPS将其重新命名CloudStack.com,其2.0版本也随之发布了.去年7月份,思杰收购了CloudStack.com,发布了3.0版本.今年4月份,思杰把CloudStack开源贡献给Apache社区.10月份CloudStack以社区的身份发布了第一个版本--CloudStack4.0.11月中旬,在拉斯维加斯举办了第一次CloudStack大会. 这就是CloudStack的大致发展历程,CloudStack是

gitlab上新建项目的方法详解

如何在gitlab上新建一个项目的代码仓库,把本地的项目推送到上面呢? 在gitlab新建项目,界面如图: 这里只需填写一些基本的项目信息,比如项目分组,项目名称,提交即可. 在新的页面,会提示你如何push本地代码到gitlab上的仓库. 我这个项目在本地是已经存在的,首先,我进入到这个目录,使用git init命令新建git仓库(注:如果该目录已经是一个git目录,删除.git文件夹即可). 这里记得把一些需要忽略的文件夹或文件填写到.gitignore中,避免push很多不需要版本管理的文

基于PHP语言编写的开源微博软件StatusNet详解

读者通过此文可以了解到 StatusNet 的安装.部署知识,而 API 及相关 demo 开发的介绍可以让开发人员学习到怎样快速的制作企业或个人需要的微博应用程序. 什么是微博(Microblogging) 几年前,所有人还在兴致勃勃的谈论博客的流行和发展趋势,众多门户网站.科技公司及开发人员也都先后进入到这个领域,传统报刊杂志和专栏作家们的命运一夜间变得岌岌可危,但谁也没有想到的是短短几年间那些长篇大论.排版华丽的博客文章被一种只有 140 字节限制,类似于短消息形式的信息发布方式所取代,它

利用Homestead快速运行一个Laravel项目的方法详解

说明# Laravel努力为整个PHP开发过程提供令人愉快的开发体验,也包括开发者的本地开发环境. Laravel Homestead是一个官方的.预封装的Vagrant"箱子",它提供给你一个奇妙的开发环境而不需要你在本机上安装PHP.HHVM.web服务器和其它的服务器软件.不用再担心搞乱你的操作系统!Vagrant箱子是完全可支配的.如果出现故障,你可以在几分种内完成销毁和重建箱子! Homestead能运行在所有的Windows.Mac或Linux系统上,它包含了Nginx.P

Android项目基本结构详解

一.简介 第3章虽然通过百度地图应用展示了你可能感兴趣的内容,但是,如果你是一个初学者,一开始就看懂和理解代码可能会非常费劲.为了解决此问题,从这一章开始,本模块将从最基本的内容讲起,带你逐步进入用C#进行Android应用开发的乐园. 二.AndroidApp入口 要用C#开发Android应用程序,首先需要对项目的基本结构有一个感性认识.如下图所示: Android应用程序使用的是单一入口,源程序中并不能一眼看出程序从哪开始运行,当应用程序加载到内存中时,Android操作系统会自动从内部自