Android Studio SlidingMenu 开源项目使用案例

Android SlidingMenu 开源项目使用


1. SlidingMenu简介:

SlidingMenu是一个强大的侧边栏导航框架:

是目前比较流行的设置主界面或配置界面界面的UI显示,在主界面左滑或者右滑出现

设置界面,能方便的进行菜单各种操作。


目前主流 App 的导航栏一般有两种:

一种是:主界面上面 3-4 个 Tab 下面搭配 ViewPager +Fragment,

另一种就是:侧边栏(如知名app 网易新闻,知乎等等这些app都使用侧边栏导航)。所以主导航超过 3 个 Tab 时,建议使用侧边

栏作为 App 的主导航。


SlidingMenu 是一个强大的侧边栏导航框架,并且已经被一些比较牛的 App 使用

主要特点如下:


(1) 侧边栏可以是一个 Fragment,包含任何 View


(2) 使用简单方便,支持左滑和右滑等


(3) 自定义侧边栏显示动画 



2.SlidingMenu 总体由三个主要的类组成


(1) SlidingMenu 继承自 RelativeLayout,对外暴露 API 给用户,同时在添加 CustomViewAbove 和 CustomViewBehind


(2) CustomViewAbove 继承自 ViewGroup,主要用来处理触摸屏事件


(3) CustomViewBehind 继承自 ViewGroup,主要用来配置参数显示侧边栏的 Menu 部分    


3.SlidingMenu 常用属性介绍:


menu.setMode(SlidingMenu.LEFT);如果只显示左侧菜单就是用LEFT,右侧就RIGHT,左右都支持就LEFT_RIGHT 


menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置为全屏区域都可以滑动 


menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片 


menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度 


menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu滑出时主页面显示的剩余宽度 


menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度 


menu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度 


menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上 


menu.setMenu(R.layout.menu_layout);//设置menu的布局文件 


menu.toggle();//动态判断自动关闭或开启SlidingMenu 


menu.showMenu();//显示SlidingMenu 


menu.showContent();//显示内容 


menu.setOnOpenListener(onOpenListener);//监听slidingmenu打开时,【这个方法对右边的slidingmenu是无效的】


slidingMenu.setOnOpenedListener(OnOpenedListener);//监听slidingmenu完全打开 


menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭时事件 


menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭后事件


menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右侧菜单的阴影图片





4.SlidingMenu 实例:


4.1 SlidingMenu github开源项目:

   SlidingMenu 开源项目 github地址:https://github.com/jfeinstein10/SlidingMe

在gitHub 下载下来后,主要使用的 SlidingMenu项目 的 library 部分
















很多老教程SlidingMenu都是基于ActionBarSherlock库才可运行,而在现最新的android studio下是不需要那样的

而且不用直接引入library的新用法。

新建实例测试工程,新建文件夹 libslidingmenu。拷贝开源项目上图红色标注的library 库中 src\com\jeremyfeinstein\slidingmenu\lib 下所有文件到

新建文件夹 libslidingmenu 中,修改对应的包名和引入路径即可

 如下图:






















Test 实例详解:

1. 首先MianActivity需要继承自libslidingmenu app 包下的SlidingFragmentActivity
2. MianActivity setContentView(R.layout.content_frame);//该layout为一个全屏的FrameLayout
3.  setBehindContentView(R.layout.menu_frame);//设置SlidingMenu使用的布局,同样是一个全屏的FrameLayout

必须使用FrameLayout 的布局,整个界面被当成一块空白备用区域 ,布局新添加元素可以覆盖之前的子元素


布局代码如下:

frame_content.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/content"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" />  

frame_left_menu.xml

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/menu"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent" />  

MainActivity 继承 SlidingFragmentActivity 代码:

主要实现的是左侧侧滑功能,设置leftmenu 主要代码如下



LeftFragment 实现一个listView 主要代码如下:



build 文件如下:




实现完成的效果如下:




代码下载:




发布了60 篇原创文章 · 获赞 28 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章