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;                       //侧滑菜单放在内容视图的左边和右边

公用方法:

  1. /**
  2. *设置内容显示视图的布局资源
  3. * @param res 布局文件资源ID
  4. */
  5. public void setContent(int res) {
  6. setContent(LayoutInflater.from(getContext()).inflate(res, null));
  7. }
  8.  
  9. /**
  10. * 设置内容显示视图的布局资源
  11. * @param view 自定义View视图
  12. */
  13. public void setContent(View view) {
  14. mViewAbove.setContent(view);
  15. showContent();
  16. }
  17.  
  18. /**
  19. * 返回内容显示视图
  20. * @return 当前内容显示视图
  21. */
  22. public View getContent() {
  23. return mViewAbove.getContent();
  24. }
  25.  
  26. /**
  27. * 设置侧滑菜单的布局*
  28. * @param res 布局资源id
  29. */
  30. public void setMenu(int res) {
  31. setMenu(LayoutInflater.from(getContext()).inflate(res, null));
  32. }
  33.  
  34. /**
  35. * 设置侧滑菜单的界面
  36. * @param view 自定义View视图
  37. */
  38. public void setMenu(View v) {
  39. mViewBehind.setContent(v);
  40. }
  41.  
  42. /**
  43. * 获取侧滑菜单视图
  44. * @return 侧滑菜单视图
  45. */
  46. public View getMenu() {
  47. return mViewBehind.getContent();
  48. }
  49.  
  50. /**
  51. * 是否使能侧滑菜单,如果设置为false则表示不能通过手势或者其它方式呼出侧滑菜单
  52. * @param b 是否使能侧滑菜单
  53. */
  54. public void setSlidingEnabled(boolean b) {
  55. mViewAbove.setSlidingEnabled(b);
  56. }
  57.  
  58. /**
  59. * 返回侧滑菜单的使能状态
  60. *
  61. * @return true, 侧滑菜单可用
  62. */
  63. public boolean isSlidingEnabled() {
  64. return mViewAbove.isSlidingEnabled();
  65. }
  66.  
  67. /**
  68. * 设置侧滑菜单的显示方式
  69. * @param mode 设置侧滑菜单显示位置 LEFT/RIGHT/LEFT_RIGHT
  70. */
  71. public void setMode(int mode) {
  72. if (mode != LEFT && mode != RIGHT && mode != LEFT_RIGHT) {
  73. throw new IllegalStateException("SlidingMenu mode must be LEFT, RIGHT, or LEFT_RIGHT");
  74. }
  75. mViewBehind.setMode(mode);
  76. }
  77.  
  78. /**
  79. * 返回当前侧滑菜单处于那种显示模式
  80. * @return 侧滑菜单当前显示模式,LEFT/RIGHT
  81. */
  82. public int getMode() {
  83. return mViewBehind.getMode();
  84. }
  85.  
  86. /**
  87. * 设置侧滑菜单是否处于静止状态
  88. * @param b true侧滑菜单处于静止状态, false 禁止侧滑菜单处于静止状态
  89. */
  90. public void setStatic(boolean b) {
  91. if (b) {
  92. setSlidingEnabled(false);
  93. mViewAbove.setCustomViewBehind(null);
  94. mViewAbove.setCurrentItem(1);
  95. } else {
  96. mViewAbove.setCurrentItem(1);
  97. mViewAbove.setCustomViewBehind(mViewBehind);
  98. setSlidingEnabled(true);
  99. }
  100. }
  101.  
  102. /**
  103. * 显示侧滑菜单
  104. */
  105. public void showMenu() {
  106. showMenu(true);
  107. }
  108.  
  109. /**
  110. * 显示侧滑菜单
  111. *
  112. * @param animate true打开侧滑菜单时有动画效果, false 打开侧滑菜单时没有动画效果
  113. */
  114. public void showMenu(boolean animate) {
  115. mViewAbove.setCurrentItem(0, animate);
  116. }
  117.  
  118. /**
  119. * 关闭侧滑菜单并显示内容视图
  120. */
  121. public void showContent() {
  122. showContent(true);
  123. }
  124.  
  125. /**
  126. *关闭侧滑菜单并显示内容视图
  127. *
  128. * @param animate true 打开内容显示视图时有动画效果, false打开内容视图时没有动画效果
  129. */
  130. public void showContent(boolean animate) {
  131. mViewAbove.setCurrentItem(1, animate);
  132. }
  133.  
  134. /**
  135. * 切换侧滑菜单和内容显示视图的显示状态
  136. * 切换侧滑菜单视图和内容显示视图,显示隐藏都带动画
  137. */
  138. public void toggle() {
  139. toggle(true);
  140. }
  141.  
  142. /**
  143. * 切换侧滑菜单视图和内容显示视图,可设置显示隐藏是否带动画
  144. * @param animate true 切换时有动画效果, false切换时没有动画效果
  145. */
  146. public void toggle(boolean animate) {
  147. if (isMenuShowing()) {
  148. showContent(animate);
  149. } else {
  150. showMenu(animate);
  151. }
  152. }
  153.  
  154. /**
  155. * 侧滑菜单是否处于显示状态
  156. * @return true 侧滑显示处于显示状态 false 侧滑菜单处于不可见状态
  157. */
  158. public boolean isMenuShowing() {
  159. return mViewAbove.getCurrentItem() == 0 || mViewAbove.getCurrentItem() == 2;
  160. }
  161.  
  162. /**
  163. * 得到侧滑菜单右侧相对于屏幕右侧的距离
  164. * @return 侧滑菜单右侧相对于屏幕右侧的距离
  165. */
  166. public int getBehindOffset() {
  167. return ((RelativeLayout.LayoutParams)mViewBehind.getLayoutParams()).rightMargin;
  168. }
  169.  
  170. /**
  171. * 设置侧滑菜右侧相对于屏幕右侧的距离
  172. * @param i 侧滑菜右侧相对于屏幕右侧的距离
  173. */
  174. public void setBehindOffset(int i) {
  175. mViewBehind.setWidthOffset(i);
  176. }
  177.  
  178. /**
  179. * 设置侧滑菜单宽度
  180. * @param i 侧滑菜单宽度*/
  181. @SuppressWarnings("deprecation")
  182. public void setBehindWidth(int i)
  183.  
  184. /**
  185. * 获取slidingmenu手势打开模式
  186. * @return slidingmenu手势打开模式
  187. */
  188. public int getTouchModeAbove() {
  189. return mViewAbove.getTouchMode();
  190. }
  191.  
  192. /**
  193. * 设置SlidingMenu手势打开模式
  194. * @param i SlidingMenu手势打开模式
  195. */
  196. public void setTouchModeAbove(int i) {
  197. if (i != TOUCHMODE_FULLSCREEN && i != TOUCHMODE_MARGIN
  198. && i != TOUCHMODE_NONE) {
  199. throw new IllegalStateException("TouchMode must be set to either" +
  200. "TOUCHMODE_FULLSCREEN or TOUCHMODE_MARGIN or TOUCHMODE_NONE.");
  201. }
  202. mViewAbove.setTouchMode(i);
  203. }
  204.  
  205. /**
  206. * 设置阴影宽度
  207. * @param 阴影宽度,单位为像素
  208. */
  209. public void setShadowWidth(int pixels) {
  210. mViewBehind.setShadowWidth(pixels);
  211. }

附件: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. 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 ...

  2. 【POJ3358】

    题目描述: 题意: 就是给定一个a/b,求a/b的结果变成二进制之后的小数.这个小数后面会有一段循环节,只要求输出循环节开始循环的位置和循环长度. 分析: 这题我是这么想的,比如说样例中的1/5,我们 ...

  3. 小米2000万买域名mi.com

    来源:互联网的一些事   移动互联网之下,域名对于企业的吸引力将会越来越低,因为网站的入口多元化,不再仅凭域名.小米用超2000万人民币的代价购买mi.com域名,仅仅是为了所谓的国际化吗?小米此举, ...

  4. 树状数组的笔记√(hzwer blog)

    int lowbit(int x) { return x&(-x); } lowbit()的返回值就是 2^k 次方的值. 求数组的和的算法: (1)首先,令sum=0,转向第二步: (2)接 ...

  5. 关于Tomcat 6的热部署和热加载

    转载:http://blog.csdn.net/tianlincao/article/details/7263840 之前每当修改了类文件,保存后tomcat 都需要自动重启,今天作了后面的设置后,可 ...

  6. HTML5入门4---HTML5 与 HTML4 同一网页的不同写法

    HTML4写法 css: body { font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana ...

  7. linux服务器下发送邮件

    系统管理人员经常会遇到对于设备或者任务的预警与通知,通常情况有发送短信.邮件等方式.发送短信一般来说需要有短信猫(硬件)或者调用libfetion给飞信用户发送.本文介绍几种简单的发送邮件的方式. 本 ...

  8. Bolt 动画

    引擎内置的 种动画 --PosChangeAnimation 平移 local ani = XLGetObject("Xunlei.UIEngine.AnimationFactory&quo ...

  9. 第三章:推荐系统冷启动与CB

    3.1冷启动问题简介: 冷启动问题(cold start)主要分三类: •     用户冷启动 •     物品冷启动 •     系统冷启动 参考解决方案: •     推热门 •     利用用户 ...

  10. How to learn linux device driver

    To learn device driver development, like any other new knowledge, the bestapproach for me is to lear ...