高仿最新版微信 6.2 手势滑动返回

该项目实现了一种类似于微信6.2版本的手势滑动返回功能,通过简单的API调用即可实现,不影响Activity生命周期。支持透明主题及Dialog滑动返回。

and_swipeback

项目地址: XBeats/and_swipeback
简介:高仿最新版微信 6.2 手势滑动返回

Features

  • 和 Activity 的 theme 并无关系
  • 不影响 activity 的生命周期
  • 只需继承 BaseActivity
  • isSupportSwipeBack 唯一 API 方法,简单实用
  • 无需设置 <item name="android:windowIsTranslucent">true</item>
  • 支持 Dialog 的滑动返回

Usage

主要思想

Application 在 Api14 之后添加了新的 Callback 方法

public void registerActivityLifecycleCallbacks(ActivityLifecycleCallbacks callback) {}

这样就可以根据 activity 的生命周期缓存所有 Activity,通过 list 获取上一个 activity 的实例,从而获取 id 为 content 的 ContentView 的子 View(即 setContentView 中的 View),并进行滑动展示。

包括以下 6 中状态

    private static final int MSG_ACTION_DOWN = 1; //点击事件  
    private static final int MSG_ACTION_MOVE = 2; //滑动事件
    private static final int MSG_ACTION_UP = 3;  //点击结束
    private static final int MSG_SLIDE_CANCEL = 4; //开始滑动,不返回前一个页面
    private static final int MSG_SLIDE_CANCELED = 5;  //结束滑动,不返回前一个页面
    private static final int MSG_SLIDE_PROCEED = 6; //开始滑动,返回前一个页面
    private static final int MSG_SLIDE_FINISHED = 7;//结束滑动,返回前一个页面
  1. 在 Down 手势发生时,只要将上一个 Activity 的 ContentView 从 parentView 中剥离,并加入到当前 View 的 ContentView 中;
  2. 在滑动手势发生时,加上阴影 View,并进行滑动;同时滑动的有当前 Activity 的 ContentView、上一个 Activity 的 ContentView 和自定义的阴影 View;
  3. 在 Up 手势发生时,判断滑动是否超过半屏,触发返回操作,并展示滑动动画;
  4. 滑动取消或滑动返回发生时,需要将上个 Activity 的 ContentView 从新加入到上一个 Acitivity 的布局中。
自定义方法

默认 activity 是支持滑动返回的,不需要返回的则需要复写 Baseactivity 的以下方法


   public class BaseActivity extends AppCompatActivity {
    private static final String TAG = "BaseActivity";
    private SwipeWindowHelper mSwipeWindowHelper;

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if(!supportSlideBack()) {
            return super.dispatchTouchEvent(ev);
        }

        if(mSwipeWindowHelper == null) {
            mSwipeWindowHelper = new SwipeWindowHelper(getWindow());
        }
        return mSwipeWindowHelper.processTouchEvent(ev) || super.dispatchTouchEvent(ev);
    }

    /**
     * 是否支持滑动返回
     *
     * @return
     */
    protected boolean supportSlideBack() {
        return true;
    }
   }

ScreenShot

image

 Toucher触摸屏浏览器软件界面美观大方,触摸查询导航方便,程序对外接口丰富,提供了在触摸屏一体机上使用的丰富实用功能:网站浏览、退出密码保护、背景音乐播放、自动关机、自动返回首页、访问网站限制、隐藏滚动条、屏幕软键盘感应启动、导航条多种风格、循环网页展示、隐藏浏览器导航条等。   Toucher触摸屏浏览器是专门针对触摸屏一体机应用而开发的,用于在触摸屏一体机上浏览网页和网站。该浏览器基于IE内核,提供访问本地及远程网页功能,具备触摸屏应用所需要的各种实用特性,提供了丰富的应用程序接口,方便与第三方程序协同工作,并且提供了很多用户定义功能,满足用户的各种实际需求。主要功能有:   · 触摸屏浏览导航。前进、后退、刷新、停止、首页、页面滚动等导航按钮使用方便快捷。   · 触摸屏软键盘。快速的输入中英文,用户可根据自己喜好选择系统任意输入法进行输入。   · 触摸屏上方便快捷退出软件。提供隐藏的在触摸屏上退出软件的方式,并支持密码保护,防止误操作。   · 多种导航条风格。自带三种不同的导航条风格,尽最大可能与所浏览的网站风格匹配。   · 自动返回首页,定时关机,周末不开机,自动改变屏幕分辨率,禁止图像工具栏,禁止屏幕保护,延时启动软件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值