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);
}  

附件:https://github.com/zmywly8866/SlidingMenu?source=cc

开源侧滑菜单SlidingMenu主要方法介绍的更多相关文章

  1. MaterialDrawer开源侧滑菜单的使用手册

    官方有详细说明,但是我首次查找的时候并没有第一眼就能使用全部功能,而网上也查找了一下,几乎所有的博客都是简简单单的几句代码...连句说明都没有,可能是我这小菜鸡理解能力不行,或者大神们认为coding ...

  2. Android笔记(五十二) 侧滑菜单SlidingMenu

    SlidingMenu是一个优秀的开源项目,可以实现侧滑菜单,简单介绍一下这SlidingMenu的使用: 常用属性和方法: setTouchModeAbove(int i )是否可以通过滑动手势打开 ...

  3. 第三方侧滑菜单SlidingMenu在android studio中的使用

    南尘:每天进步一点点! 前面讲了官方的侧滑菜单DrawerLayout的使用,其实早在官方没有推出这个之前,就有很多第三方的jar包如SlidingMenu等,感谢开源的力量. SlidingMenu ...

  4. iOS开发UI篇--一个侧滑菜单SlidingMenu

    一.简介 侧滑菜单已经成为app一个极常用的设计,不管是事务类,效率类还是生活类app.侧滑菜单因Path 2.0和Facebook为开发者熟知,国内目前也有很多流行app用到了侧滑菜单,比如QQ.网 ...

  5. 侧滑菜单SlidingMenu

    想要使用SlidingMenu 需要下载文件SlidingMenu-master 并导入SlidingMenu-master中的第三方library 如图所示: 修改library里的build.gr ...

  6. 安卓开发笔记——关于开源项目SlidingMenu的使用介绍(仿QQ5.0侧滑菜单)

    记得去年年末的时候写过这个侧滑效果,当时是利用自定义HorizontalScrollView来实现的,效果如下: 有兴趣的朋友可以看看这篇文件<安卓开发笔记——自定义HorizontalScro ...

  7. SlidingMenu 侧滑菜单的用法

    很多APP都有侧滑菜单的功能,部分APP左右都是侧滑菜单~SlidingMenu 这个开源项目可以很好帮助我们实现侧滑功能,将侧滑菜单引入项目的方式很多中,先通过例子介绍各种引入方式,然后给大家展示个 ...

  8. Android 侧滑菜单的简单实现(SlidingMenu)

    在我还没有学习Android的时候就用过侧滑菜单的APP,当时第一个感觉是:哇塞,这效果不错!当然,现在自己都已经学Android了,这效果当然也要做出来啊~ SlidingMenu是一种比较新的设置 ...

  9. 在 Swift 项目中实现侧滑菜单-利用 SWRevealViewController

    你可以完全自己手动写一个侧滑菜单,但是现在在 GitHub 上面已经有很多免费的开源库了,如果不是有很特别的需求,大可不必新建一个轮子. 在这里我使用的这个第三方库名字叫做 SWRevealViewC ...

随机推荐

  1. POJ 1363 Rails(栈)

    思路:将出车站的顺序存入数组train,由于入车站的顺序是固定的,为1~N,所以用P表示进站的车,初始为1. 接下来举例说明吧: 原来入站顺序:    1 2 3 4 5 读入的出战顺序: 3 4 2 ...

  2. URAL 1244. Gentlemen (DP)

    题目链接 题意 : 给出一幅不完全的纸牌.算出哪些牌丢失了. 思路 : 算是背包一个吧.if f[j]>0  f[j+a[i]] += f[j];然后在记录一下路径. #include < ...

  3. hdu 4427 Math Magic DP

    思路: dp[i][j][k]表示满足前i个数,和为j,lcm为k的数目. 设a为解的第i+1个数. 那么状态转移就为 dp[i+1][j+a][lcm(a,k)]+=dp[i][j][k]. 但是由 ...

  4. IE插件DebugBar如何安装及使用

    DebugBar插件是一款功能很强大的IE插件,用户可以从各个不同的角度剖析Web页面内部,包括页面 详细代码.CSS样式表.所有链接.所有图片代码.脚本信息等等,不管你是编程大虾还是IT新人都和适合 ...

  5. TC SRM 605

    Div2  AlienAndSetDiv2   1000 pts 题意:1~2N的数分成2个数组A,B,并且数组中按增序排列,同时满足|A[i] - B[i]| <= K,问有多少种方法? 分析 ...

  6. N皇后//搜索入门

    P1080 N皇后 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列只有一个,每条 ...

  7. 去掉eclipse的xml和js验证

    一.XML Properties > Validation you have two options: 1- Configure Workspace Settings (disable the ...

  8. IPC$命令详解

    一 摘要二 什么是ipc$三 什么是空会话四 空会话可以做什么五 ipc$所使用的端口六 ipc管道在hack攻击中的意义七 ipc$连接失败的常见原因八 复制文件失败的原因九 关于at命令和xp对i ...

  9. Help And Manual 帮助文件制作工具

    Help And Manual 简    介 帮助文件制作工具 支持文件格式 26种 其他功能 制作非常专业的使用手册 一个所见即所得的帮助文件制作工具,是市面上功能最强的 WYSIWYG (所见即所 ...

  10. C# 静态类 + c# 访问器 用途

    C# 静态类    http://blog.csdn.net/dodream/article/details/4588498 静态类的主要特性:仅包含静态成员. 无法实例化. 是密封的. 不能包含实例 ...