第三方库SlidingMenu的使用

使用开发工具:IntelliJ社区版

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

整体过程如下:

File->Import Module导入三个工程

SlidingMenu 的example工程引用了ActionBarSherlock 里的Theme和style,所以需要将ActionBarSherlock 的工程导入。ActionBarSherlock下载:https://github.com/JakeWharton/ActionBarSherlock

添加引用:example工程使用了其他的两个库,在设置中(点右键open module settings)添加引用。

example工程添加v4包引用,这儿需要注意的是example工程和、library库和ActionBarSherlock 库使用的support包是必须是一样的,那么就需要在添加引用v4的时候使用的是同一个位置的v4包。

其他两个项目同样需要添加v4包,一样的操作。

基于上面给出的原因,将library库中的libs目录下的v4包删除。

ActionBarSherlock 库中添加了测试,所以如果不需要的话可以将test目录删除。

最后一步:

com.jeremyfeinstein.slidingmenu.exampleBaseActivity类中53行(不同的版本可能不一样)这一句:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

会报错,所以需要修改libray库中的

com.jeremyfeinstein.slidingmenu.lib.app包下的SlidingFragmentActivity(快捷键是按两下shift进行搜索),让它继承于SherlockFragmentActivity。

另:一开始使用第三方库不太熟悉,所以尝试了个笨办法,经试验是可用的。将library和ActionBarSherlock 这两个库中用到的res目录下的资源文件和src下的类文件拷贝到example中,但是因为不同的库的类中使用的资源文件目录(即R文件的目录)不一样了,所以手动需要修改的地方很多......囧

附:两个第三方库下载解压后的目录如下:

SlidingMenu-master文件夹下目录:

ActionBarSherlock-master文件夹下目录:

在自己的项目中简单使用:

添加成员变量

private Fragment mContent;

在onCreate()方法中加入

if (savedInstanceState != null)

mContent = getSupportFragmentManager().getFragment(savedInstanceState, "mContent");

if (mContent == null)

mContent = new ColorFragment(R.color.red);

和如下代码

setBehindContentView(R.layout.menu_frame);

getSupportFragmentManager()

.beginTransaction()

.replace(R.id.menu_frame, new ColorMenuFragment())

.commit();

getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

getSlidingMenu().setBehindOffsetRes(R.dimen.slidingmenu_offset);

重写方法

@Override

public void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

getSupportFragmentManager().putFragment(outState, "mContent", mContent);

}

定义如下方法

public void switchContent(Fragment fragment) {

mContent = fragment;

getSupportFragmentManager()

.beginTransaction()

.replace(R.id.main, fragment)

.commit();

getSlidingMenu().showContent();

}

拷贝drawable和values目录下的资源文件到自己的工程对应目录下

拷贝想要使用的fragment类文件和对应的布局文件到自己的工程中。

设置actionbar是否也移动

setSlidingActionBarEnabled(false);

SlidingMenu 常用属性介绍:

menu.setMode(SlidingMenu.LEFT);//设置左滑菜单

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打开

关于关闭menu有两个监听,简单的来说,对于menu close事件,一个是when,一个是after

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

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

左右都可以划出SlidingMenu菜单只需要设置

menu.setMode(SlidingMenu.LEFT_RIGHT);属性,然后设置右侧菜单的布局文件

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

设置SlidingMenu属性

sm = getSlidingMenu();

//如果只显示左侧菜单就是用LEFT,右侧就RIGHT,左右都支持就LEFT_RIGHT

sm.setMode(SlidingMenu.LEFT_RIGHT);//设置菜单滑动模式,菜单是出现在左侧还是右侧,还是左右两侧都有

sm.setShadowDrawable(R.drawable.shadow);//设置阴影的图片资源

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

//sm.setBehindWidth(200);//设置菜单的宽

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

sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的区域

支持右侧划出菜单:

//SlidingMenu可以同时支持划出左右两侧的菜单,互不冲突,而且动画优美,体验良好。

sm.setSecondaryMenu(R.layout.menu_frame2);//设置右侧菜单

sm.setSecondaryShadowDrawable(R.drawable.shadowright);//设置右侧菜单阴影的图片资源

//右侧SlidingMenu的Fragment

getSupportFragmentManager().beginTransaction().replace(R.id.menu_frame2, new SampleListFragment()).commit();

slidingMenu = getSlidingMenu();

//设置是左滑还是右滑,还是左右都可以滑

slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);

//设置阴影宽度

slidingMenu.setShadowWidth(getWindowManager().getDefaultDisplay().getWidth() / 40);

//设置左菜单阴影图片

slidingMenu.setShadowDrawable(R.drawable.shadow);

//设置右菜单阴影图片

slidingMenu.setSecondaryShadowDrawable(R.drawable.right_shadow);

//设置菜单占屏幕的比例

slidingMenu.setBehindOffset(getWindowManager().getDefaultDisplay().getWidth() / 5);

//设置滑动时菜单的是否淡入淡出

slidingMenu.setFadeEnabled(true);

//设置淡入淡出的比例

slidingMenu.setFadeDegree(0.4f);

//设置滑动时拖拽效果

slidingMenu.setBehindScrollScale(0);

//设置要使菜单滑动,触碰屏幕的范围

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

SlidingFragmentActivity中一些方法被重写成final的,所以在自己创建的Actvitiy中重写Activity的方法时,重写的是SlidingFragmentActivity中的方法。

例如

@Override

public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {

com.actionbarsherlock.view.MenuInflater menuInflater = getSupportMenuInflater();

menuInflater.inflate(R.menu.menu_main, menu);

return true;

}

时间: 2024-10-26 14:59:48

第三方库SlidingMenu的使用的相关文章

使用SlidingMenu的方法以及Android Studio 如何导入第三方库SlidingMenu

一.使用SlidingMenu的方法 1.引入SlidingMenu库 2.继承SlidingFragmentActivity 3.onCreate方法改成public 4.调用相关API  二.Android Studio 如何导入第三方库SlidingMenu? 材料:github网站下载的第三方库SlidingMenu-master.zip 步骤: 1.新建一个项目(我的项目是NewsReports) 2.在NewsReports目录下新建一个SlidingMenuLibraries文件夹

Android Studio导入第三方库(SlidingMenu)教程

搞了半天,android的初学者,看着网上各种例子,特此记录. 注意:本教程针对像SlidingMenu这样使用Android Studio结构的第三方库. 开始: 第一步,去GitHub下载SlidingMenu (下载地址:https://github.com/jfeinstein10/SlidingMenu),下载下来在你的电脑上应该是这样样子的: 第二步,建立一个Android Studio项目: 第三步,在咱们的SlidingMenudemo项目里建立个model,这样就避免了好多教程

使用Android Studio导入第三方库项目

在使用Android Studio开发时,用到了第三方库SlidingMenu(现在已经不推荐使用了),尽管如此,但具体怎么导入第三方库还是需要知道的,在查阅各种资料后,知道了一种比较容易可行的方法 具体步骤如下 1.首先,需要从GitHub上下载去SlidingMenu (https://github.com/jfeinstein10/SlidingMenu) 2.接下来在你的项目上右击New->Module(这样避免了修改gradle的繁琐步骤),然后选择Android Library 3.

android开发常用组件和第三方库(二)

TimLiu-Android 自己总结的Android开源项目及库. github排名 https://github.com/trending, github搜索:https://github.com/search 目录 UI UI 卫星菜单 节选器 下拉刷新 模糊效果 HUD与Toast 进度条 UI其它 动画 网络相关 响应式编程 地图 数据库 图像浏览及处理 视频音频处理 测试及调试 动态更新热更新 消息推送 完整项目 插件 出名框架 其他 好的文章 收集android上开源的酷炫的交互动

iOS:实现图片的无限轮播(二)---之使用第三方库SDCycleScrollView

下载链接:github不断更新地址:https://github.com/gsdios/SDCycleScrollView 使用原理:采用UICollectionView的重用机制和循环滚动的方式实现图片的无限轮播,播放非常顺畅,解决了UISCrollView使用时从最后一张跳到第一张时的生硬状态. 主要类截图: SDCollectionViewCell:用来重用的item,即显示图片的视图: SDCycleScrollView: 对外提供的一个创建轮播器的接口类,使用者就是直接使用这个类来实现

Linux下安装Python3.x和第三方库

如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! 不要动现有的python2环境! 不要动现有的python2环境! 不要动现有的python2环境! 重要的使用说三遍! 一.安装python3.6 1. 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readli

lua第三方库

luarocks用来安装第三方库非常方便 sudo luarocks install rapidjson sudo luarocks install luasocket 安装好之后,就可以使用了: local rapidjson = require("rapidjson") local http = require("socket.http") user = {1,2,3,4} print(rapidjson.encode(user)) local response

Pycharm安装第三方库

pycharm安装Python第三方库 经常不同的源码使用了不同的包,安装特定版本的包,用pycharm很棒! 1.打开pycharm,点击File,再点击settings 2.点击settings之后再点击project下面的project Interpreter将会出现如下界面: 要删除,选中包,然后点击"-",就删除了 3.接下来点击上面界面右上角的"+"将会出现如下界面:然后在搜索框中搜索需要安装的第三方库(此处搜索requests)然后点击界面左下角的In

【转】CocoaPods一个Objective-C第三方库的管理利器

原文网址:http://blog.csdn.net/totogo2010/article/details/8198694 介绍: 开发应用的时候第三方的库是不可缺少的,能提高开发的效率. 一些经常用到的库,在新的项目里用是,你又得手工的Add到项目里,用的到库多起来了,就不方便管理了.发现CocoaPods这个软件,可以帮你管理Xcode里的第三方的库,很方便. 那怎么用呢?先安装CocoaPods. 1.CocoaPods是跑在Ruby的软件,安装可能需要几分钟,安装命名: sudo gem