今日推荐(三)AndroidResideMenu类似QQ侧滑效果
效果图:
DEMO
本代码即是DEMO,您可以下载后选择您喜欢的IDE运行。SDK版本建议使用4.0以上
Version Migration
从 v1.0, v1.1, v1.2, v1.3 升级到 v1.4
如果你开启了手势滑动,你需要替换被依附的 Activity 里 dispatchTouchEvent() 代码
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
return resideMenu.dispatchTouchEvent(ev);
}
Requirements
运行在 Android 2.3 +
Installation
Gradle
repositories {
mavenCentral()
}
dependencies {
compile 'com.specyci:residemenu:1.6+'
}
Other
直接导入ResideMenu项目并作为依赖项目
例子
or 直接合并到您的项目之中
复制src/com/special/ResideMenu下的所有代码到您的项目相应位置
复制libs/nineoldandroids-library-2.4.0.jar到您项目libs/下
复制res/drawable-hdpi/shadow.9.png到您的项目相应位置
复制res/layout/residemenu.xml 和 residemenu_item.xml到您的项目相应位置
Usage
写在Activity onCreate()中
// attach to current activity;
resideMenu = new ResideMenu(this);
resideMenu.setBackground(R.drawable.menu_background);
resideMenu.attachToActivity(this);
// create menu items;
String titles[] = { "Home", "Profile", "Calendar", "Settings" };
int icon[] = {
R.drawable.icon_home,
R.drawable.icon_profile,
R.drawable.icon_calendar,
R.drawable.icon_settings
};
for (int i = 0; i < titles.length; i++){ ResideMenuItem item = new ResideMenuItem(this, icon[i], titles[i]);
item.setOnClickListener(this); resideMenu.addMenuItem(item, ResideMenu.DIRECTION_LEFT);
// or ResideMenu.DIRECTION_RIGHT
}
如果您需要使用手势滑动开启/关闭菜单,请复写activity的dispatchTouchEvent(),代码如下
@Override
public boolean dispatchTouchEvent(MotionEvent ev) { return resideMenu.dispatchTouchEvent(ev); }
在某些场景下,手势滑动开启/关闭菜单可能与您的某些控件产生冲突,例如viewpager,这时您可以把viewpager添加到ignored view.请参见下节Ignored Views
开启/关闭菜单 open or close menu
resideMenu.openMenu(ResideMenu.DIRECTION_LEFT);
// or ResideMenu.DIRECTION_RIGHT
resideMenu.closeMenu();
监听菜单状态
resideMenu.setMenuListener(menuListener);
private ResideMenu.OnMenuListener menuListener =
new ResideMenu.OnMenuListener() {
@Override
public void openMenu() {
Toast.makeText(mContext, "Menu is opened!", Toast.LENGTH_SHORT)
.show();
}
@Override
public void closeMenu() {
Toast.makeText(mContext, "Menu is closed!", Toast.LENGTH_SHORT)
.show();
}
};
禁止手势操作某个菜单方向
resideMenu.setSwipeDirectionDisable(ResideMenu.DIRECTION_RIGHT);
Ignored Views
在某些场景下,手势滑动开启/关闭菜单可能与您的某些控件产生冲突,例如viewpager,这时您可以把viewpager添加到ignored view.
// add gesture operation's ignored views
FrameLayout ignored_view = (FrameLayout) findViewById(R.id.ignored_view);
resideMenu.addIgnoredView(ignored_view);
这样子在ignored_view操作的区域就不允许用手势滑动操作菜单.
源码下载:
https://github.com/SpecialCyCi/AndroidResideMenu
今日推荐(三)AndroidResideMenu类似QQ侧滑效果的更多相关文章
- android开发学习 ------- 仿QQ侧滑效果的实现
需要做一个仿QQ侧滑删除的一个效果: 一开始是毫无头绪,百度找思路,找到 https://blog.csdn.net/xiaxiazaizai01/article/details/53036994 ...
- 类似QQ侧滑菜单功能实现
之前的那文章简单实现了菜单侧拉功能,但是做不到像QQ那样导航条和tabBar一起移动...之后在网上找资料,有了思路,就自个写了个demo试试水. 先创建QHLMainController控制器,并把 ...
- Android开源框架之SwipeListView导入及模拟QQ侧滑
SwipeListView是Github上的一个开源框架,地址:https://github.com/47deg/android-swipelistview SwipeListView was bor ...
- 使用Design包实现QQ动画侧滑效果和滑动菜单导航
Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...
- 再造 “手机QQ” 侧滑菜单(三)——视图联动
代码示例:https://github.com/johnlui/SwiftSideslipLikeQQ 本 文中,我们将一起使用 UINavigationController 来管理主视图,并实现点击 ...
- WinForm实现类似QQ停靠,显示隐藏过程添加特效效果
原文:WinForm实现类似QQ停靠,显示隐藏过程添加特效效果 这可能是个老题长谈的问题了,只是在项目中会用到这个效果,所以今天做个记录.大家见了别喷我.在项目中的需求是这样的. 打开程序,在屏幕的右 ...
- 使用plupload做一个类似qq邮箱附件上传的效果
公司项目中使用的框架是springmvc+hibernate+spring,目前需要做一个类似qq邮箱附件上传的功能,暂时只是上传小类型的附件 处理过程和解决方案都需要添加附件,处理过程和解决方案都可 ...
- 实现类似QQ的折叠效果
// 主要核心是点击自定义header来展开和收起每一组里面的cell,模型里面应该有isShow此属性来记录开展还是收起. // ViewController.m// 实现类似QQ的折叠效果/ ...
- winform-实现类似QQ停靠桌面上边缘隐藏的效果
//实现类似QQ停靠桌面上边缘隐藏的效果! private void timer1_Tick(object sender, EventArgs e) { System.Drawing.Point pp ...
随机推荐
- 如何使rdlc报表的表头在每一页都显示
想要使表格的表头在每一行都显示,直接在表格的属性设置界面中设置是无效的,应该算是一个BUG,如图: 但还是可以实现的,实现方法如下,这个实现方法从网上得到 开发工具: Visual Studio 20 ...
- ThinkPHP 自动验证与自动填充无效可能的原因
原文链接:http://www.5idev.com/p-thinkphp_validate_auto_Invalid.shtml 自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇 ...
- APUE《UNIX 环境高级编程》读后感
今天终于把APUE前17章全部看完了,基本上主要知识就在这些章节里. 之前看完<unix/linux编程实践教程>时,有一种豁然开朗.心旷神怡的感觉,在代码级别了解了linux很多系统机制 ...
- arm-none-eabi-gcc install
Zephyr除了官方的编译工具,还有第三方工具 arm-none-eabi-gcc . This PPA is an alternative to toolchain released at http ...
- 转:aptitude 命令详解
原文:http://www.isspy.com/aptitude-%E5%91%BD%E4%BB%A4%E8%AF%A6%E8%A7%A3/ aptitude aptitude 是 Debian GN ...
- 应用Oracle(Linux中的安装)
Linux中安装Oracle,不同于windows. Linux在安装时,要作些必要的分区配置,以便进行Oracle的安装: 同时需要创建专门的数据库用户和组,并配置环境变量. root登录 使用 r ...
- Agri-Net
poj1258:http://poj.org/problem?id=1258 题意:生成树的模板题.简单题. #include<iostream> #include<cstring& ...
- codeforces Dima and Bacteria
题意:给出n,m和k,表示有n个细菌,m种仪器和k种细菌,给出k种细菌的数量ci,然后每个细菌按照种类排成一排(所以有第i种细菌的序号从∑(1≤j≤i-1)cj + 1 到∑(1≤j≤i)cj):接下 ...
- ikely()与unlikely() 都等同于if, 此处只是做编译优化
ikely()与unlikely()在2.6内核中,随处可见,那为什么要用它们?它们之间有什么区别呢? 首先明确: if (likely(value))等价于if (value)if (likely( ...
- BZOJ 1030 [JSOI2007]文本生成器
1030: [JSOI2007]文本生成器 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2624 Solved: 1087[Submit][Stat ...