开源侧滑菜单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 ...
随机推荐
- POJ 2499 Binary Tree(二叉树,找规律)
题意:给一个这样的二叉树,每个节点用一对数(a,b)表示,根节点为(1,1).设父亲为(a,b),左儿子(a+b,b),右儿子(a,a+b). 给几组数据,(i,j),求从根节点到(i,j)节点需要向 ...
- 2014多校第一场A题 || HDU 4861 Couple doubi
题目链接 题意 : 有K个球,给你一个数P,可以求出K个值,(i=1,2,...,k) : 1^i+2^i+...+(p-1)^i (mod p).然后女朋友先取,再xp取,都希望赢,如果女朋友能赢输 ...
- DataRow.RowState 属性
RowState 的值取决于两个因素:已对该行执行的操作的类型,以及是否已对 DataRow 调用了 AcceptChanges. private void DemonstrateRowState() ...
- 李洪强iOS开发之零基础学习iOS开发】【02-C语言】01-概述
前面已经给大家介绍了iOS开发相关的一些基础知识,其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言.iOS开发需要学习的主要程序设计语言有:C语言.C+ ...
- 2.Sprng-IoC-Java反射例子
1.Car.java package com.jike.spring.chapter03.reflect; public class Car { private String brand; priva ...
- python 编码问题(二)
>>> a = '中文' >>> chardet.detect(a) {'confidence': 0.7525, 'encoding': 'utf-8'} > ...
- C#基础练习(事件登陆案例)
Form1的后台代码: namespace _08事件登陆案例 { public partial class Form1 : Form { public Form1() ...
- office开发心得——基于模板开发
这几天正在写一个小程序,但用到生成word表格和Excel表格.到网上查了一些资料,发现如果生成表格模板相对比较固定即可把其制作成模板,需要设置什么格式可以直接在模板中设置,而程序仅需替换相应的内容即 ...
- BZOJ 2844 albus就是要第一个出场(高斯消元)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2844 题意: 给出一个长度为n的正整数数列A.每次选出A的一个子集进行抑或(空集抑或值为 ...
- php整理(一):变量和字符串
PHP中的变量: 1. 定义:$符号来定义变量 2. 说明: (1)PHP弱语言,定义变量的时候不用声明类型,但是并不代表PHP没有数据类型 (2)变量名是区分大小写的,只能是数字,字母或者下划线 ( ...