开源侧滑菜单SlidingMenu主要方法介绍
SlidingMenu是一个很好使用的侧滑菜单开源项目,它的表现形式类似于DrawerLayout和SlidingDrawer,具体效果如下图所示,左侧为侧滑Menu菜单,右侧黑色部分为内容显示视图Content:
下面是SlidingMenu主要的方法:
全局常量:
//侧滑菜单通过手势的打开方式
publicstatic final int TOUCHMODE_MARGIN = 0; //触摸屏幕边缘打开侧滑菜单
publicstatic final int TOUCHMODE_FULLSCREEN = 1;//触摸屏幕的任何位置打开侧滑菜单
publicstatic final int TOUCHMODE_NONE = 2; //禁止通过手势打开侧滑菜单
//侧滑菜单的显示位置
publicstatic final int LEFT = 0; //侧滑菜单显示在内容视图左边
publicstatic final int RIGHT = 1; //侧滑菜单显示在内容视图右边
publicstatic final int LEFT_RIGHT = 2; //侧滑菜单放在内容视图的左边和右边
公用方法:
- /**
- *设置内容显示视图的布局资源
- * @param res 布局文件资源ID
- */
- public void setContent(int res) {
- setContent(LayoutInflater.from(getContext()).inflate(res, null));
- }
- /**
- * 设置内容显示视图的布局资源
- * @param view 自定义View视图
- */
- public void setContent(View view) {
- mViewAbove.setContent(view);
- showContent();
- }
- /**
- * 返回内容显示视图
- * @return 当前内容显示视图
- */
- public View getContent() {
- return mViewAbove.getContent();
- }
- /**
- * 设置侧滑菜单的布局*
- * @param res 布局资源id
- */
- public void setMenu(int res) {
- setMenu(LayoutInflater.from(getContext()).inflate(res, null));
- }
- /**
- * 设置侧滑菜单的界面
- * @param view 自定义View视图
- */
- public void setMenu(View v) {
- mViewBehind.setContent(v);
- }
- /**
- * 获取侧滑菜单视图
- * @return 侧滑菜单视图
- */
- public View getMenu() {
- return mViewBehind.getContent();
- }
- /**
- * 是否使能侧滑菜单,如果设置为false则表示不能通过手势或者其它方式呼出侧滑菜单
- * @param b 是否使能侧滑菜单
- */
- public void setSlidingEnabled(boolean b) {
- mViewAbove.setSlidingEnabled(b);
- }
- /**
- * 返回侧滑菜单的使能状态
- *
- * @return true, 侧滑菜单可用
- */
- public boolean isSlidingEnabled() {
- return mViewAbove.isSlidingEnabled();
- }
- /**
- * 设置侧滑菜单的显示方式
- * @param mode 设置侧滑菜单显示位置 LEFT/RIGHT/LEFT_RIGHT
- */
- public void setMode(int mode) {
- if (mode != LEFT && mode != RIGHT && mode != LEFT_RIGHT) {
- throw new IllegalStateException("SlidingMenu mode must be LEFT, RIGHT, or LEFT_RIGHT");
- }
- mViewBehind.setMode(mode);
- }
- /**
- * 返回当前侧滑菜单处于那种显示模式
- * @return 侧滑菜单当前显示模式,LEFT/RIGHT
- */
- public int getMode() {
- return mViewBehind.getMode();
- }
- /**
- * 设置侧滑菜单是否处于静止状态
- * @param b true侧滑菜单处于静止状态, false 禁止侧滑菜单处于静止状态
- */
- public void setStatic(boolean b) {
- if (b) {
- setSlidingEnabled(false);
- mViewAbove.setCustomViewBehind(null);
- mViewAbove.setCurrentItem(1);
- } else {
- mViewAbove.setCurrentItem(1);
- mViewAbove.setCustomViewBehind(mViewBehind);
- setSlidingEnabled(true);
- }
- }
- /**
- * 显示侧滑菜单
- */
- public void showMenu() {
- showMenu(true);
- }
- /**
- * 显示侧滑菜单
- *
- * @param animate true打开侧滑菜单时有动画效果, false 打开侧滑菜单时没有动画效果
- */
- public void showMenu(boolean animate) {
- mViewAbove.setCurrentItem(0, animate);
- }
- /**
- * 关闭侧滑菜单并显示内容视图
- */
- public void showContent() {
- showContent(true);
- }
- /**
- *关闭侧滑菜单并显示内容视图
- *
- * @param animate true 打开内容显示视图时有动画效果, false打开内容视图时没有动画效果
- */
- public void showContent(boolean animate) {
- mViewAbove.setCurrentItem(1, animate);
- }
- /**
- * 切换侧滑菜单和内容显示视图的显示状态
- * 切换侧滑菜单视图和内容显示视图,显示隐藏都带动画
- */
- public void toggle() {
- toggle(true);
- }
- /**
- * 切换侧滑菜单视图和内容显示视图,可设置显示隐藏是否带动画
- * @param animate true 切换时有动画效果, false切换时没有动画效果
- */
- public void toggle(boolean animate) {
- if (isMenuShowing()) {
- showContent(animate);
- } else {
- showMenu(animate);
- }
- }
- /**
- * 侧滑菜单是否处于显示状态
- * @return true 侧滑显示处于显示状态 false 侧滑菜单处于不可见状态
- */
- public boolean isMenuShowing() {
- return mViewAbove.getCurrentItem() == 0 || mViewAbove.getCurrentItem() == 2;
- }
- /**
- * 得到侧滑菜单右侧相对于屏幕右侧的距离
- * @return 侧滑菜单右侧相对于屏幕右侧的距离
- */
- public int getBehindOffset() {
- return ((RelativeLayout.LayoutParams)mViewBehind.getLayoutParams()).rightMargin;
- }
- /**
- * 设置侧滑菜右侧相对于屏幕右侧的距离
- * @param i 侧滑菜右侧相对于屏幕右侧的距离
- */
- public void setBehindOffset(int i) {
- mViewBehind.setWidthOffset(i);
- }
- /**
- * 设置侧滑菜单宽度
- * @param i 侧滑菜单宽度*/
- @SuppressWarnings("deprecation")
- public void setBehindWidth(int i)
- /**
- * 获取slidingmenu手势打开模式
- * @return slidingmenu手势打开模式
- */
- public int getTouchModeAbove() {
- return mViewAbove.getTouchMode();
- }
- /**
- * 设置SlidingMenu手势打开模式
- * @param i SlidingMenu手势打开模式
- */
- public void setTouchModeAbove(int i) {
- if (i != TOUCHMODE_FULLSCREEN && i != TOUCHMODE_MARGIN
- && i != TOUCHMODE_NONE) {
- throw new IllegalStateException("TouchMode must be set to either" +
- "TOUCHMODE_FULLSCREEN or TOUCHMODE_MARGIN or TOUCHMODE_NONE.");
- }
- mViewAbove.setTouchMode(i);
- }
- /**
- * 设置阴影宽度
- * @param 阴影宽度,单位为像素
- */
- public void setShadowWidth(int pixels) {
- mViewBehind.setShadowWidth(pixels);
- }
开源侧滑菜单SlidingMenu主要方法介绍的更多相关文章
- MaterialDrawer开源侧滑菜单的使用手册
官方有详细说明,但是我首次查找的时候并没有第一眼就能使用全部功能,而网上也查找了一下,几乎所有的博客都是简简单单的几句代码...连句说明都没有,可能是我这小菜鸡理解能力不行,或者大神们认为coding ...
- Android笔记(五十二) 侧滑菜单SlidingMenu
SlidingMenu是一个优秀的开源项目,可以实现侧滑菜单,简单介绍一下这SlidingMenu的使用: 常用属性和方法: setTouchModeAbove(int i )是否可以通过滑动手势打开 ...
- 第三方侧滑菜单SlidingMenu在android studio中的使用
南尘:每天进步一点点! 前面讲了官方的侧滑菜单DrawerLayout的使用,其实早在官方没有推出这个之前,就有很多第三方的jar包如SlidingMenu等,感谢开源的力量. SlidingMenu ...
- iOS开发UI篇--一个侧滑菜单SlidingMenu
一.简介 侧滑菜单已经成为app一个极常用的设计,不管是事务类,效率类还是生活类app.侧滑菜单因Path 2.0和Facebook为开发者熟知,国内目前也有很多流行app用到了侧滑菜单,比如QQ.网 ...
- 侧滑菜单SlidingMenu
想要使用SlidingMenu 需要下载文件SlidingMenu-master 并导入SlidingMenu-master中的第三方library 如图所示: 修改library里的build.gr ...
- 安卓开发笔记——关于开源项目SlidingMenu的使用介绍(仿QQ5.0侧滑菜单)
记得去年年末的时候写过这个侧滑效果,当时是利用自定义HorizontalScrollView来实现的,效果如下: 有兴趣的朋友可以看看这篇文件<安卓开发笔记——自定义HorizontalScro ...
- SlidingMenu 侧滑菜单的用法
很多APP都有侧滑菜单的功能,部分APP左右都是侧滑菜单~SlidingMenu 这个开源项目可以很好帮助我们实现侧滑功能,将侧滑菜单引入项目的方式很多中,先通过例子介绍各种引入方式,然后给大家展示个 ...
- Android 侧滑菜单的简单实现(SlidingMenu)
在我还没有学习Android的时候就用过侧滑菜单的APP,当时第一个感觉是:哇塞,这效果不错!当然,现在自己都已经学Android了,这效果当然也要做出来啊~ SlidingMenu是一种比较新的设置 ...
- 在 Swift 项目中实现侧滑菜单-利用 SWRevealViewController
你可以完全自己手动写一个侧滑菜单,但是现在在 GitHub 上面已经有很多免费的开源库了,如果不是有很特别的需求,大可不必新建一个轮子. 在这里我使用的这个第三方库名字叫做 SWRevealViewC ...
随机推荐
- Relevance Between Variable Declaration and Definition in C++
A declaration makes a name known to a programm. A definition creates the assocatied entity. A variab ...
- 【POJ3358】
题目描述: 题意: 就是给定一个a/b,求a/b的结果变成二进制之后的小数.这个小数后面会有一段循环节,只要求输出循环节开始循环的位置和循环长度. 分析: 这题我是这么想的,比如说样例中的1/5,我们 ...
- 小米2000万买域名mi.com
来源:互联网的一些事 移动互联网之下,域名对于企业的吸引力将会越来越低,因为网站的入口多元化,不再仅凭域名.小米用超2000万人民币的代价购买mi.com域名,仅仅是为了所谓的国际化吗?小米此举, ...
- 树状数组的笔记√(hzwer blog)
int lowbit(int x) { return x&(-x); } lowbit()的返回值就是 2^k 次方的值. 求数组的和的算法: (1)首先,令sum=0,转向第二步: (2)接 ...
- 关于Tomcat 6的热部署和热加载
转载:http://blog.csdn.net/tianlincao/article/details/7263840 之前每当修改了类文件,保存后tomcat 都需要自动重启,今天作了后面的设置后,可 ...
- HTML5入门4---HTML5 与 HTML4 同一网页的不同写法
HTML4写法 css: body { font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana ...
- linux服务器下发送邮件
系统管理人员经常会遇到对于设备或者任务的预警与通知,通常情况有发送短信.邮件等方式.发送短信一般来说需要有短信猫(硬件)或者调用libfetion给飞信用户发送.本文介绍几种简单的发送邮件的方式. 本 ...
- Bolt 动画
引擎内置的 种动画 --PosChangeAnimation 平移 local ani = XLGetObject("Xunlei.UIEngine.AnimationFactory&quo ...
- 第三章:推荐系统冷启动与CB
3.1冷启动问题简介: 冷启动问题(cold start)主要分三类: • 用户冷启动 • 物品冷启动 • 系统冷启动 参考解决方案: • 推热门 • 利用用户 ...
- How to learn linux device driver
To learn device driver development, like any other new knowledge, the bestapproach for me is to lear ...