全新的手势,侧滑返回、全局右滑返回都OUT啦!

前言

Android快速开发框架-ZBLibrary 最近将以前的 全局右滑返回 手势功能改成了 底部左右滑动手势

为什么呢?为了解决滑动返回手势的问题。

目前有3种滑动返回手势

一、侧滑返回

代表app: 微信(带跟手动画)

问题:

屏幕尺寸超过一定大小(按正常手掌大小和手指长度算,最大可掌握尺寸为4.7寸)会导致用户右手持机时手指够不到左侧滑动手势触发区域。

即便勉强够到,失败率也很高,失败几次后用户就不想再用了。

二、全局右滑返回

代表app: 酷狗音乐(带跟手动画)、QQ(无跟手动画)

问题:

1.与向右滑动切换tab的手势冲突

下方的 酷狗乐库 界面和 QQ添加 界面就是为了避免冲突而没有左右滑动切换tab的手势。

2.与向右拖动网页等的手势冲突

如果内容宽度超出了屏幕宽度,用户向右滑动只是想拖动网页或照片,结果却关闭了界面。

所以酷狗跳转到这种网页会调用应用外浏览器;QQ还是用内嵌的QQ浏览器,但所有网页界面都不支持滑动返回。

三、底部左右滑动手势

代表app: 快用通讯录

事实上,这种方式不仅能向右滑动返回,还能向左滑动"前进"(效果等同于点击右上角按钮)。

并且完美地解决了以上所有问题!比如下方的带tab的界面,中间左右滑动切换tab、底部左右滑动对应导航栏的"返回"、"所有"。

下面这个是 中间左右滑动切换用户引导界面、底部向右滑动返回上个界面。

ZBLibrary还增强了 底部左右滑动手势 的功能,比如下方的内置浏览器界面就可以 底部向左滑动前进、底部向右滑动后退(在首页则直接返回上个界面)。

可能会有人问:你这个不也和 全局右滑返回 一样会冲突吗?

从逻辑上来讲确实是冲突的,但从使用上来看是不冲突的:

用户平时手指是放在中间的,既然直接滑动就能切换tab、拖动网页,就不会把手指移到屏幕底部了。

那么如果把手指移到底部左右滑动,肯定是想要右滑"返回"或左滑 "前进"了。

如何添加ZBLibrary中的底部左右滑动手势

1.下载、导入、依赖ZBLibrary

点击右边链接查看 http://my.oschina.net/u/2437072/blog/665241

2.新建一个Activity,并extends BaseActivity 和 implements OnBottomDragListener

3.setContentView(layoutResId, this);

4.重写onDragBottom方法

实现底部左右滑动对应的操作。这里是右滑返回、左滑添加列表。并且对应导航栏左右按钮的点击事件onClick中调用了onDragBottom方法。

好了。

如果你连2-4这几步都懒得做,把ZBLibrary里的DemoActivity.java 复制>粘贴>改名>改代码 就可以啦!

下载试用

快用通讯录.apk

ZBLibraryDemoApp.apk

下载源码(欢迎Star,欢迎Fork)

https://github.com/TommyLemon/Android-ZBLibrary

时间: 2024-08-26 16:20:27

全新的手势,侧滑返回、全局右滑返回都OUT啦!的相关文章

App开发流程之右滑返回手势功能

iOS7以后,导航控制器,自带了从屏幕左边缘右滑返回的手势功能. 但是,如果自定义了导航栏返回按钮,这项功能就失效了,需要自行实现.又如果需要修改手势触发范围,还是需要自行实现. 广泛应用的一种实现方案是,采用私有变量和Api,完成手势交互和返回功能,自定义手势触发条件和额外功能. 另一种实现方案是,采用UINavigationController的代理方法实现交互和动画: - (nullable id <UIViewControllerInteractiveTransitioning>)na

右滑返回ios

[转载请注明出处] iOS 7中在传统的左上角返回键之外,提供了右滑返回上一级界面的手势.支持此手势的是UINavigationController中新增的属性 interactivePopGestureRecognizer,即右滑返回只支持以UINavigationController为容器的ViewController间切换,要想在自定义容器中使用,需要一些额外的工作. 基本地,控制ViewController是否启用右滑返回,只需要这样:  .navigationController.in

SwipeBackLayout的使用方法,右滑返回

使用方法: 需要右滑返回的activity继承baseActivity就可以, 如: public class SettingActivity extends BaseActivity {} 为防止滑动出现黑屏效果,记得需要定义 <!-- 滑动activity必须使用该主题,防侧滑时黑屏 --> <style name="NoTitleBarTheme" parent="AppBaseThemeSwipe"></style> &l

swift 关于FDFullscreenPopGesture的右滑返回

关于导航栏右滑返回的工具库 FDFullscreenPopGesture 是 OC 版本,用了 runtime 等各种骚操作 关于 swift ,我在 UINavigationController 的 viewDidLoad 方法中 class GMNavigationController: UINavigationController { override func viewDidLoad() { super.viewDidLoad() self.addPanGes() } /// 将导航栏的

想要隐藏navigationBar,同时又想支持右滑返回功能

如果直接设置 self.navigationBarHidden = YES; 那同时也会屏蔽右滑返回功能. 解决办法1: self.navigationBarHidden = NO; self.navigationBar.hidden = YES; 解决办法2: self.navigationBarHidden = NO; self.interactivePopGestureRecognizer.delegate = self;

ios7自定义返回按钮后,右滑返回功能失效解决方法

-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //开启ios右滑返回 if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) { self.navigationController.interactivePopGestureRecognizer.delegate = n

Android右滑返回上一界面

今天突然心血来潮,想在自己的项目里面加一个右滑finish界面的功能.思路很简单就是拦截屏幕滑动事件,然后finish当前页面,不多说了,上代码吧. 第一步:利用VelocityTracker计算滑动速度,及一些附带的代码. private VelocityTracker mVelocityTracker = null;//速度记录器 private int getScrollVelocity() { mVelocityTracker.computeCurrentVelocity(1000);

解决右滑返回手势和UIScrollView中的手势冲突

项目中遇到一个页面中是以一个scrollview横向Tab展示两个不同功能的显示,譬如消息和公告功能,但是由于滑动返回手势和scrollview的滑动返回手势冲突了,导致页面不再能够滑动返回.类似的还有图片浏览功能也出现过. iOS系统中,滑动返回手势,其实是一个UIPanGestureRecognizer,系统默认的操作是只有滑动屏幕的左边的某个位置,UIPanGestureRecognizer才会起作用.UIScrollView的滑动手势也是UIPanGestureRecognizer.那在

iOS 开发 右滑返回上一级控制器

#import <objc/runtime.h> @interface UINavigationController (Transition)<UIGestureRecognizerDelegate> - (void)transitionPanGestureDidLoad; @end @interface DLNavigationTransition () @end @implementation DLNavigationTransition /** *  启动右滑pop */ +