Android左滑返回功能的实现示例代码

  

前几天用了个软件发现左滑可以返回首页,发现这个功能很炫酷,就想着自己能不能做出来,于是研究了一下
  

  

<强>原理

  
      <李>将活动的背景设置为透明同时设置切换动画   <李>手指滑动的时候,根视图跟着滑动,滑倒一定的距离就完成掉。
      李   
  

原理很简单,但实现起来可能有些坑。这里记录一下。源码参考
  

  

<强>处理onInterceptTouchEvent

  

事件拦截要处理一件事情:确定这次触摸事件是不是应该交给SlideFinishLayout的onTouchEvent处理。

        覆盖乐趣>   覆盖乐趣>   & lt;样式名=" AppTheme。透明的“父=" Theme.AppCompat.Light.NoActionBar”比;   & lt;项目名称=" android: windowBackground "祝辞@color/transparent   & lt;项目名称=" android: windowIsTranslucent "祝辞true   & lt;/style>   之前      

<强>设置活动进场和出场动画

  

R.anim。输入
  

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;设置xmlns: android=" http://schemas.android.com/apk/res/android "比;      & lt;翻译   android: fromXDelta=?00% p”   android: toXDelta=" 0 "   android:持续时间=" 200 "   android:插入器=" @android:动画/accelerate_decelerate_interpolator”/比;   & lt;/set>      之前      

R.anim。退出
  

        & lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比;   & lt;设置xmlns: android=" http://schemas.android.com/apk/res/android "   android: shareInterpolator=" true "   比;      & lt;翻译   android: fromXDelta=" 0 "   android: toXDelta=?00% p”   android:持续时间=" 200 "   android:插入器=" @android:动画/accelerate_decelerate_interpolator”/比;   & lt;/set>      之前      

活动代码如下

        类TwoActivity: BaseActivity () {      覆盖有趣onCreate (savedInstanceState:包# 63;){   super.onCreate (savedInstanceState)   setContentView (R.layout.activity_two)      val指数=意图# 63;.getStringExtra(“指数”)      nextBtn。setOnClickListener {   startActivity(意图(this@TwoActivity TwoActivity:: class.java))   overridePendingTransition (R.anim。输入,0)   }//滑动达到完成的监听事件,slideFinishLayout没有做任何处理如果这里不掉用完也不会退出活动   slideFinishLayout。finishListener={   完成()   overridePendingTransition (0, 0)   }   }      覆盖有趣完成(){   super.finish ()   R.anim.exit overridePendingTransition (0)   }   }      之前      

<强>存在的问题

  

堆栈之前的活动被意外销毁了,此时的当前的活动虽然为透明的,但是背景是黑色的,可能是因为被意外销毁还没有来的及调用onCreate,但是打开不保留活动来测试是没有问题的。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Android左滑返回功能的实现示例代码