您的位置:首页 > 移动开发 > Android开发

Android Studio SlidingMenu 开源项目使用案例

2017-06-16 10:58 567 查看
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

<?xml version="1.0" encoding="utf-8"?>  

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  

    android:id="@+id/content"  

    android:layout_width="match_parent"  

    android:layout_height="match_parent" />  

frame_left_menu.xml

[html] view
plain copy

<?xml version="1.0" encoding="utf-8"?>  

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  

    android:id="@+id/menu"  

    android:layout_width="match_parent"  

    android:layout_height="match_parent" />  

MainActivity 继承 SlidingFragmentActivity 代码:
主要实现的是左侧侧滑功能,设置leftmenu 主要代码如下



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



build 文件如下:



实现完成的效果如下:



代码下载:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: