在现如今,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 手势返回上一界面 亲测可用相关推荐

  1. android获取详细地址,Android获取当前子网掩码地址(亲测可用)

    Android 获取当前子网掩码地址(亲测可用),现在网上好多都是通过 DhcpInfo 来获取,但是通过这种方法有 Bug,很多人用 DhcpInfo 的方式都是获取不到,都是为 0.0.0.0. ...

  2. layui实现后台管理系统界面(亲测可用)

    使用的是最新的layui2.5.6 1.UI效果 2.代码 需要根据自己的项目,对下面代码中注释了TODO的地方进行修改.(当然,至于其他js/css文件也需要具体情况具体修改) (下面的代码只是管理 ...

  3. 打电话android代码,android 拨打电话例子源码(亲测可用)

    [实例简介] [实例截图] [核心代码] package androidCall.pack; import java.util.regex.Matcher; import java.util.rege ...

  4. Java服务器、android连接小票打印机打印(亲测可用)

    优声云打印机JAVA SDK 使用教程 安装 下载下来放到项目中的某一位置 优声云打印对接准备工作 注册一个开发者帐号 注册地址(https://console.ushengyun.com) 获取开发 ...

  5. Android - 返回上一个界面finish()方法

    返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...

  6. android重写finish方法,Android - 返回上一个界面finish()方法

    返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...

  7. android切换到上个页面,Android 返回上一个界面刷新数据

    有些界面需要返回上一个界面刷刷新数据,再此做个记录. 首先startActivityForResult进行Actvity进行跳转,这是跳转前的界面. // 通过 startActivityForRes ...

  8. Android音乐播放器悬浮窗功能,亲测可用

    最近公司要开发一项语音播报新闻的功能.要求是: 1.语音播报时有一个悬浮窗,能滑动,退出当前页面后能继续播放: 2.松手后滑向靠近的边: 于是我临时学了Window,WindowManager,onT ...

  9. Android FFmpeg移植总攻略——获取视频帧数(亲测可用)

    第一次尝试使用Android 移植FFmpeg算法,一路坎坷,最终做如下总结,适用于Android手机.Android开发板.亲测可用. 一.下载组件 在Android Studio中下载所需组件:C ...

最新文章

  1. 生命的真谛不在于你呼吸的次数,而在于那些令你无法呼吸的时刻
  2. es对分组后结果进行统计_ElasticSearch里面如何分组后根据sum值排序
  3. python3猜数字小游戏代码示例
  4. 一种用css实现图片在父框中等比缩放并垂直居中的办法
  5. c语言指针和数组的联系
  6. 如何理解许多Android布局
  7. mysql语句详解_mysql基础篇 - SELECT 语句详解
  8. 大唐凌烟阁开国廿四将
  9. emoji表情包整理好的
  10. Python如何自动播放视频(XXT)
  11. 奥运五环(一键复制)
  12. 如何判断一个数是不是整数
  13. 已然神话的区块链的应用了解一下-MGCEX
  14. 心形代码HTML,赶紧发给你喜欢的人
  15. 服务器项目迁移本地,云服务器迁移本地
  16. 第十七章 加密XML文档
  17. 记录centos上 Probable fatal error: No physical fonts found问题解决过程
  18. hb哈勃公链_曝光!HB哈勃公链,花式套路
  19. 【绘图必备】国际色卡
  20. 网络安全等保定级_网络安全等级保护定级指南

热门文章

  1. 皮一皮:原来微信备注还有这个用...
  2. 每日一皮:昨晚梦见男朋友和别的女人在逛街,梦里我的第一反应就是查源代码......
  3. 百度开源的 71 个项目,看看你用过几个?
  4. flink 三种时间机制_360深度实践:Flink 与 Storm 协议级对比
  5. ‘shared_ptr‘ is not a member of ‘std’
  6. WeightedRandomSampler示例
  7. c语言发送结构体 文件
  8. python 生成随机图片
  9. dataframe 通配符筛选
  10. argparse subparsers()