SlidingMenu基础

原创 2016年08月29日 11:16:09

(一)、SlidingMenu简介:

SlidingMenu的是一种比较新的设置界面或配置界面效果,在主界面左滑或者右滑出现设置界面,能方便的进行各种操作.目前有大量的应用都在使用这一效果。如Evernote、Google+、Foursquare等,国内的豌豆夹,人人,360手机助手等都使用SlidingMenu的界面方案。

(二)、基本用法:
1、SlidingMenuLibrary是一个开源库,而不是一个完整的项目,要把它作为libary引入到你自己的工程里,简单配置一下就可以实现SlidingMenu的效果。

二、使用SlidingMenu开源库开发:

(一)、开发步骤:
1、第一步:生成SlidingMenu对象
SlidingMenu slidMenu = new SlidingMenu(this);

2、第二步:设置参数:
(1)、SlidingMenu菜单模式:
slidMenu.setMode(SlidingMenu.RIGHT);
模式有三种,第一种是LEFT 第二种RIGHT 右边滑出,LEFT_RIGHT左右滑出

(2)、设置SlidingMenu菜单布局:
slidMenu.setMenu(R.layout.menu_left);
setMenu():设置左边滑动菜单的界面,setSecondaryMenu()设置右边滑动菜单的界面

(3)、设置菜单显示方式:
slidMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
第一种TOUCHMODE_FULLSCREEN,第二种TOUCHMODE_MARGIN ,第三种 TOUCHMODE_NONE

(4)、设置触摸滑动菜单时隐藏菜单:
slidMenu.setTouchBehind();

(5)、设置菜单显示宽度:
slidMenu.setBehindWidth(300); //单位:px

(6)、将菜单附加到当前的Activity窗口中:
slidMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); //以内容方式附加,共用一个ActionBar。SLIDING_CONTENT、SLIDING_WINDOW

(7)、其他属性:
//设置菜单与内容边缘的阴影效果
slidMenu.setShadowWidth(10);
slidMenu.setShadowDrawable(getResources().getDrawable(R.drawable.shadow_shape));
//滑动时透明度的改变
slidMenu.setFadeEnabled(true);
slidMenu.setFadeDegree(1.0f);
//设置滑动菜单的滑动尺度
slidMenu.setBehindScrollScale(0.25f);

(二)、SlidingMenu 常用属性介绍:
menu.setMode(SlidingMenu.LEFT);//设置左滑菜单
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕范围,该设置为全屏区域都可以滑动
menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片
menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu划出时主页面显示的剩余宽度
menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度
menu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度
menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上
menu.setMenu(R.layout.menu_layout);//设置menu的布局文件
menu.toggle();//动态判断自动关闭或开启SlidingMenu
menu.showMenu();//显示SlidingMenu
menu.showContent();//显示内容

关于打开menu有两个监听,简单的来说,对于menu open事件,一个是when,一个是after
menu.setOnOpenListener(onOpenListener);//监听slidingmenu正在打开事件
menu.setOnOpenListener(onOpenedListener);//监听slidingmenu打开后事件

关于关闭menu有两个监听,简单的来说,对于menu close事件,一个是when,一个是after
menu.OnCloseListener(OnCloseListener);//监听slidingmenu关闭时事件
menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭后事件

左右都可以划出SlidingMenu菜单只需要设置:
menu.setMode(SlidingMenu.LEFT_RIGHT);属性,然后设置右侧菜单的布局文件
menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右侧菜单的阴影图片

使用Fragment实现SlidingMenu:
1.首先Activity继承自SlidingMenu包下的SlidingFragmentActivity
2. setContentView(R.layout.content_frame);//该layout为一个全屏的FrameLayout
3. setBehindContentView(R.layout.menu_frame);//设置SlidingMenu使用的布局,同样是一个全屏的FrameLayout
4.设置SlidingMenu左侧菜单的Fragment

[java]
setBehindContentView(R.layout.menu_frame);
FragmentTransaction t = this.getSupportFragmentManager().beginTransaction();
leftMenuFragment = new MenuFragment();
t.replace(R.id.menu_frame, leftMenuFragment);
t.commit();

(三)、实例代码:

1、简单的滑动菜单效果:
public class MainActivity extends Activity {
private SlidingMenu slidingMenu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
slidingMenu = new SlidingMenu(this);
slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
slidingMenu.setMenu(R.layout.sm_left);
slidingMenu.setSecondaryMenu(R.layout.sm_right);
slidingMenu.setBehindWidth(200);
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

slidingmenu完美实现沉浸式,demo下载地址在github

demo地址:https://github.com/yugu88/BaoDian由于在网上找了很久没有可行的解决方案,都是提了一点点就不说了,所以我还是亲自研究了两个晚上,把众多的坑踏平,为了方便以后...
  • gfg156196
  • gfg156196
  • 2016年10月31日 20:47
  • 1340

SlidingMenu关闭手势滑动

getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 改成 getSlidingMenu().setTouch...
  • liupengcheng201
  • liupengcheng201
  • 2016年10月24日 14:05
  • 1149

SlidingMenu源码分析及拓展:监听拉出菜单时的滚动事件,将主页变暗

这些效果以前都写过,但是之前没有积累的习惯,导致每次开始一个新项目时又要重新去翻阅资料、api,挺浪费时间的,所以打算记录一下,养成好习惯。 SlidingMenu与DrawerLayout: ...
  • c_cayujie
  • c_cayujie
  • 2017年01月12日 16:55
  • 478

SlidingMenu使用简介

SlidingMenu 是GitHub上的一个开源项目,用来实现SlidingMenu的菜单效果(https://github.com/jfeinstein10/SlidingMenu)目前为止,它提...
  • xuemengrui12
  • xuemengrui12
  • 2016年10月14日 12:33
  • 649

一个完整的SlidingMenu的使用范例

1.SlidingMenu介绍 SlidingMenu是一个第三方的开源库,注意用来替代传统意义上的Menu菜单栏,将菜单栏以更加美观的视图呈现给用户。我们首先需要在github上获取该开源代码。 获...
  • jinxin_cuit
  • jinxin_cuit
  • 2016年11月10日 23:06
  • 1808

使用SlidingMenu的属性设置和小问题

转自http://m.blog.csdn.net/article/details?id=52490708 先简单记下SlidingMenu的属性: menu.setMode(Sliding...
  • MeterJory
  • MeterJory
  • 2016年12月05日 09:48
  • 319

超简单Android Studio导入第三方库(SlidingMenu)教程绝对傻瓜版

搞了2天,看着网上各种抄来抄去的例子快疯了,特此记录。 注意:本教程针对像SlidingMenu这样使用Eclipse结构的第三方库。过程简单,容易,方便记忆(实际上就三步),为防止出现意外,进行了多...
  • u012210379
  • u012210379
  • 2015年06月23日 13:30
  • 4198

SlidingMenu实现沉浸式状态栏的终极办法

前段时间做项目 用到了因为SlidingMenu发现SlidingMenu无法实现沉浸式状态栏 当时项目时间紧张 没来的及研究源码 故只改了状态栏的颜色,今天有空在完善项目的时候 感觉只修改状态栏颜色...
  • a458339341
  • a458339341
  • 2017年01月04日 17:59
  • 1584

Android Studio中导入SlidingMenu(详解)

AS中导入GitHub开源项目SlidingMenu总结,我开始AS导入SlidingMenu的时候也百度了很多文章,写的都不是很详细,所以后来导入成功后,写了这篇文章,希望对想用AndroidStu...
  • shenyuanqing
  • shenyuanqing
  • 2015年08月15日 15:19
  • 8659

[安卓开发] Android Studio导入SlidingMenu的两种方法(超详细)

方法1导入aar:顺道解析一下在android studio中,有两种方式: 一种是jar包,一种是带资源文件的aar包。 jar: 只包含了class文件与清单文件 ,不包含资源文件,如图片等...
  • niubitianping
  • niubitianping
  • 2016年08月16日 11:50
  • 6036
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SlidingMenu基础
举报原因:
原因补充:

(最多只允许输入30个字)