Android 手势返回上一界面 亲测可用
在现如今,Android使用越来越便捷,也对Android开发提出更高要求,便捷体现在开发的每一处。
这里介绍Android使用手势返回上一界面。亲测可用!
一、思考:
1. 监听可手势返回上一界面的Activity,BackGestureListener;
2. 每个需返回上一界面的Activity,继承父类Activity,父类Activity可实现手势返回上一级功能。
二、Demo需求:
MainActivity点击跳转至TwoActivity,TwoActivity手势返回MainActivity。
三、实施:
1. MainActivity
package com.jcet.susan.rightbackdemo;import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void click(View view) {Intent intent = new Intent(MainActivity.this, TwoActivity.class);startActivity(intent);}
}
2. BaseActivity
package com.jcet.susan.rightbackdemo;import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;/*** Project: RightBackDemo* Package: com.jcet.susan.rightbackdemo* FileName: BaseActivity* Email: Susan.xu@cj-elec.com* Date: 2019/12/3.*/public class BaseActivity extends Activity {/** 手势监听 */GestureDetector mGestureDetector;/** 是否需要监听手势关闭功能 */private boolean mNeedBackGesture = false;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);initGestureDetector();}private void initGestureDetector() {if (mGestureDetector == null) {mGestureDetector = new GestureDetector(getApplicationContext(),new BackGestureListener(this));}}/* (non-Javadoc)* touch手势分发* @see android.app.Activity#dispatchTouchEvent(android.view.MotionEvent)*/@Overridepublic boolean dispatchTouchEvent(MotionEvent ev) {// TODO Auto-generated method stubif (mNeedBackGesture) {return mGestureDetector.onTouchEvent(ev)|| super.dispatchTouchEvent(ev);}return super.dispatchTouchEvent(ev);}/** 设置是否进行手势监听*/public final void setNeedBackGesture(boolean mNeedBackGesture) {this.mNeedBackGesture = mNeedBackGesture;}}
3. BackGestureListener
package com.jcet.susan.rightbackdemo;/*** Project: RightBackDemo* Package: com.jcet.susan.rightbackdemo* FileName: BackGestureListener* Email: Susan.xu@cj-elec.com* Date: 2019/12/3.*/import android.app.Activity;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;/*** @author imgod* 自定义一个类来实现OnGestureListener 手势监听*/
public class BackGestureListener implements OnGestureListener {private Activity mc;public BackGestureListener(Activity context) {// TODO Auto-generated constructor stubmc = context;}@Overridepublic boolean onDown(MotionEvent arg0) {// TODO Auto-generated method stubreturn false;}@Overridepublic boolean onFling(MotionEvent arg0, MotionEvent arg1, float arg2,float arg3) {// TODO Auto-generated method stubreturn false;}@Overridepublic void onLongPress(MotionEvent arg0) {// TODO Auto-generated method stub}@Overridepublic boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,float arg3) {// 已经往右滑动超过100px并且上下滑动不超过60pxif ((arg1.getX() - arg0.getX()) > 100 && (Math.abs(arg0.getY() - arg1.getY()) < 60)) {mc.onBackPressed();}return false;}@Overridepublic void onShowPress(MotionEvent arg0) {// TODO Auto-generated method stub}@Overridepublic boolean onSingleTapUp(MotionEvent arg0) {// TODO Auto-generated method stubreturn false;}}
4. 只需在需添加手势返回的界面添加以下即可:
extends BaseActivity
setNeedBackGesture(true);
Android 手势返回上一界面 亲测可用相关推荐
- android获取详细地址,Android获取当前子网掩码地址(亲测可用)
Android 获取当前子网掩码地址(亲测可用),现在网上好多都是通过 DhcpInfo 来获取,但是通过这种方法有 Bug,很多人用 DhcpInfo 的方式都是获取不到,都是为 0.0.0.0. ...
- layui实现后台管理系统界面(亲测可用)
使用的是最新的layui2.5.6 1.UI效果 2.代码 需要根据自己的项目,对下面代码中注释了TODO的地方进行修改.(当然,至于其他js/css文件也需要具体情况具体修改) (下面的代码只是管理 ...
- 打电话android代码,android 拨打电话例子源码(亲测可用)
[实例简介] [实例截图] [核心代码] package androidCall.pack; import java.util.regex.Matcher; import java.util.rege ...
- Java服务器、android连接小票打印机打印(亲测可用)
优声云打印机JAVA SDK 使用教程 安装 下载下来放到项目中的某一位置 优声云打印对接准备工作 注册一个开发者帐号 注册地址(https://console.ushengyun.com) 获取开发 ...
- Android - 返回上一个界面finish()方法
返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...
- android重写finish方法,Android - 返回上一个界面finish()方法
返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...
- android切换到上个页面,Android 返回上一个界面刷新数据
有些界面需要返回上一个界面刷刷新数据,再此做个记录. 首先startActivityForResult进行Actvity进行跳转,这是跳转前的界面. // 通过 startActivityForRes ...
- Android音乐播放器悬浮窗功能,亲测可用
最近公司要开发一项语音播报新闻的功能.要求是: 1.语音播报时有一个悬浮窗,能滑动,退出当前页面后能继续播放: 2.松手后滑向靠近的边: 于是我临时学了Window,WindowManager,onT ...
- Android FFmpeg移植总攻略——获取视频帧数(亲测可用)
第一次尝试使用Android 移植FFmpeg算法,一路坎坷,最终做如下总结,适用于Android手机.Android开发板.亲测可用. 一.下载组件 在Android Studio中下载所需组件:C ...
最新文章
- 生命的真谛不在于你呼吸的次数,而在于那些令你无法呼吸的时刻
- es对分组后结果进行统计_ElasticSearch里面如何分组后根据sum值排序
- python3猜数字小游戏代码示例
- 一种用css实现图片在父框中等比缩放并垂直居中的办法
- c语言指针和数组的联系
- 如何理解许多Android布局
- mysql语句详解_mysql基础篇 - SELECT 语句详解
- 大唐凌烟阁开国廿四将
- emoji表情包整理好的
- Python如何自动播放视频(XXT)
- 奥运五环(一键复制)
- 如何判断一个数是不是整数
- 已然神话的区块链的应用了解一下-MGCEX
- 心形代码HTML,赶紧发给你喜欢的人
- 服务器项目迁移本地,云服务器迁移本地
- 第十七章 加密XML文档
- 记录centos上 Probable fatal error: No physical fonts found问题解决过程
- hb哈勃公链_曝光!HB哈勃公链,花式套路
- 【绘图必备】国际色卡
- 网络安全等保定级_网络安全等级保护定级指南
热门文章
- 皮一皮:原来微信备注还有这个用...
- 每日一皮:昨晚梦见男朋友和别的女人在逛街,梦里我的第一反应就是查源代码......
- 百度开源的 71 个项目,看看你用过几个?
- flink 三种时间机制_360深度实践:Flink 与 Storm 协议级对比
- ‘shared_ptr‘ is not a member of ‘std’
- WeightedRandomSampler示例
- c语言发送结构体 文件
- python 生成随机图片
- dataframe 通配符筛选
- argparse subparsers()