Jeff Lee blog:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),retain the url when reproduced ! Thanks

效果图:



求资源到首页上部加群即可。

一. SlidingMenu简介

github:https://github.com/jfeinstein10/SlidingMenu

官网上面的简介上翻译的:

SlidingMenu是能让开发者很容易的开发有滑动菜单App(像Google+,YouTube,Facebook)的开源android库。只要引入这个开源库的许可代码,就可以很容易免费的用在你想要滑动菜单的app。如下图所示:
                                                                                                 

二.官方小例子

  1. public class SlidingExample extends Activity {
  2.  
  3. @Override
  4. public void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setTitle(R.string.attach);
  7. // set the content view
  8. setContentView(R.layout.content);
  9. // configure the SlidingMenu
  10. SlidingMenu menu = new SlidingMenu(this);
  11. menu.setMode(SlidingMenu.LEFT);
  12. menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
  13. menu.setShadowWidthRes(R.dimen.shadow_width);
  14. menu.setShadowDrawable(R.drawable.shadow);
  15. menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
  16. menu.setFadeDegree(0.35f);
  17. menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
  18. menu.setMenu(R.layout.menu);
  19. }
  20.  
  21. }

自然你也可以用xml定义一个slidingMenu

  1. <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
  2. xmlns:sliding="http://schemas.android.com/apk/res-auto"
  3. android:id="@+id/slidingmenulayout"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. sliding:viewAbove="@layout/YOUR_ABOVE_VIEW"
  7. sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND"
  8. sliding:touchModeAbove="margin|fullscreen"
  9. sliding:behindOffset="@dimen/YOUR_OFFSET"
  10. sliding:behindWidth="@dimen/YOUR_WIDTH"
  11. sliding:behindScrollScale="@dimen/YOUR_SCALE"
  12. sliding:shadowDrawable="@drawable/YOUR_SHADOW"
  13. sliding:shadowWidth="@dimen/YOUR_SHADOW_WIDTH"
  14. sliding:fadeEnabled="true|false"
  15. sliding:fadeDegree="float"
  16. sliding:selectorEnabled="true|false"
  17. sliding:selectorDrawable="@drawable/YOUR_SELECTOR"/>

官方文档翻译如下:

  • viewAbove - 在菜单之上的布局引用

  • viewBehind - 在菜单之下的布局引用
  • touchModeAbove - 指那一部分屏幕触摸后视图显示
  • behindOffset - 菜单显示时,主体显示多少(单位像素)
  • behindWidth - 菜单显示,主体显示的宽。默认全屏
  • behindScrollScale - 菜单显示的滚动设置
  • shadowDrawable - 滚动阴影设置
  • shadowWidth - 滚动阴影的宽度
  • fadeEnabled - 滑动时菜单的是否渐变
  • fadeDegree - 滑动时的渐变程度

三.实现滑动菜单

主要结构:MainAct为主入口,然后各个fragment实现各自内容动作。

MainAct.java

  1. public class MainAct extends FragmentActivity {
  2. private SlidingMenu menu;
  3.  
  4. @Override
  5. public void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.slidingmenu_main);
  8.  
  9. menu = new SlidingMenu(this);
  10. menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
  11. menu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);
  12. menu.setShadowDrawable(R.drawable.slidingmenu_shadow);
  13. menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
  14. DisplayMetrics dm = new DisplayMetrics();
  15. getWindowManager().getDefaultDisplay().getMetrics(dm);
  16. menu.setFadeDegree(0.35f);
  17. menu.setBehindOffset(dm.widthPixels*50/100);
  18. menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
  19.  
  20. menu.setMode(SlidingMenu.LEFT_RIGHT);//这里模式设置为左右都有菜单,RIGHT显示右菜单,LEFT显示左菜单,LEFT_RIGH显示左右菜单
  21. menu.setContent(R.layout.slidingmenu_content);
  22. menu.setMenu(R.layout.slidingmenu_menu);
  23.  
  24. menu.setSecondaryMenu(R.layout.slidingmenu_menu_2);
  25. menu.setSecondaryShadowDrawable(R.drawable.slidingmenu_shadow_2);
  26.  
  27. getSupportFragmentManager()
  28. .beginTransaction()
  29. .replace(R.id.slidingmenu_content, new MainFragment(menu))
  30. .commit();//设置主页面内容
  31.  
  32. getSupportFragmentManager()
  33. .beginTransaction()
  34. .replace(R.id.slidingmenu_menu, new MainLeftFragment())
  35. .commit();//设置左菜单内容
  36.  
  37. getSupportFragmentManager()
  38. .beginTransaction()
  39. .replace(R.id.slidingmenu_menu_2, new MainRightFragment(menu))
  40. .commit();//设置右菜单内容
  41.  
  42. }
  43. }

总结:用则简单则难

Android UI(三)SlidingMenu实现滑动菜单(详细 官方)的更多相关文章

  1. Android开源库--SlidingMenu左右侧滑菜单

    如果说我比别人看得更远些,那是因为我站在了巨人的肩上.   github地址:https://github.com/jfeinstein10/SlidingMenu   设置: 1.下载之后以依赖项的 ...

  2. Android UI效果实现——Activity滑动退出效果

    更新说明: 1.在QQ网友北京-旭的提醒下,在SlideFrame的initilize方法中添加了focusable.focusableInTouch.clickable的状态设置,否则会导致部分情况 ...

  3. 【Android UI】顶部or底部菜单的循环滑动效果一

    实现了分页的滑动效果,做的demo流畅运行 注:貌似支持的样式(控件)有一定的限制,我试过短信的listview页面,暂无法实现滑动效果 java文件:MainActivity.java.Activi ...

  4. 【Android UI】案例03滑动切换效果的实现(ViewPager)

    本例使用ViewPager实现滑动切换的效果.本例涉及的ViewPager.为android.support.v4.view.ViewPager.所以须要在android项目中导入android-su ...

  5. SlidingMenu 左侧滑动菜单

    1.MainActivity package loveworld.slidingmenu; import java.util.ArrayList; import android.app.Activit ...

  6. Android 学习笔记之AndBase框架学习(七) SlidingMenu滑动菜单的实现

    PS:努力的往前飞..再累也无所谓.. 学习内容: 1.使用SlidingMenu实现滑动菜单..   SlidingMenu滑动菜单..滑动菜单在绝大多数app中也是存在的..非常的实用..Gith ...

  7. Android UI(五)云通讯录项目之联系人列表,带侧滑选择,带搜索框

    作者:泥沙砖瓦浆木匠网站:http://blog.csdn.net/jeffli1993个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节.交流QQ群:[编程之美 365234583]h ...

  8. Android 滑动菜单SlidingMenu

    首先我们看下面视图: 这种效果大家都不陌生,网上好多都说是仿人人网的,估计人家牛逼出来的早吧,我也参考了一一些例子,实现起来有三种方法,我下面简单介绍下: 方法一:其实就是对GestureDetect ...

  9. 【Android UI设计与开发】第17期:滑动菜单栏(二)开源项目SlidingMenu的示例

    通过上一篇文章的讲解,相信大家对于开源项目SlidingMenu都有了一个比较初步的了解(不了解的可以参考上 一篇文章),那么从这一章开始,博主将会以SlidingMenu为重心,给大家带来非常丰富的 ...

随机推荐

  1. Python Day 13 装饰器

    阅读目录   内容回顾 函数嵌套的定义 global.nonlocal关键字 闭包及闭包的运用场景 开放封闭原则 装饰器 一个函数被多次装饰 ##内容回顾 1.函数对象:函数名 => 存放的是函 ...

  2. 2T以上磁盘格式化

    1.安装软件 对于 Debian/Ubuntu 用户, 使用 APT-GET 命令或者 APT 命令来安装 parted #apt-get install -y parted 对于 RHEL/Cent ...

  3. 编译Spark源码

    Spark编译有两种处理方式,第一种是通过SBT,第二种是通过Maven.作过Java工作的一般对于Maven工具会比较熟悉,这边也是选用Maven的方式来处理Spark源码编译工作. 在开始编译工作 ...

  4. spring 5.1.2 mvc RequestMappingHandlerMapping 调用handler过程

    https://my.oschina.net/zhangxufeng/blog/2177464 https://www.jianshu.com/p/447826c28e37 Interceptors ...

  5. TensorFlow学习笔记1

    1.daocloud 拉取 docker镜像 docker pull daocloud.io/daocloud/tensorflow:latest 镜像位置: /Users/{YourUserName ...

  6. 【repost】js window对象属性和方法相关资料整理

    window对象有以下方法: open close alert confirm prompt setTimeout clearTimeout setInterval clearInterval mov ...

  7. shell脚本颜色输出(实例未编辑)

    颜色输出通过echo 输出,需要加-e echo -e "\033[背景颜色;字体颜色\033[0m" 背景颜色 40 设置黑色背景 41 设置红色背景 42 设置绿色背景 43 ...

  8. 在CentOS 7上安装和使用GlusterFS

    GlusterFS aggregates various storage servers over Ethernet or Infiniband RDMA interconnect into one ...

  9. IO在Socket中的应用

    一.BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个连接 ...

  10. lua-01

    ctrl + shift + L 多行编辑 ctrl + D 继续向下选中下一个相同的文本 Alt + F3 选中所有相同所选中德文本 =>Lua的快捷键 回调代码: function fact ...