Activity切换动画实现,以及黑屏问题解决
Posted 汤米粥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Activity切换动画实现,以及黑屏问题解决相关的知识,希望对你有一定的参考价值。
场景:
- A打开B页面,A页面保持不动,B页面从底部滑入显示
- B返回A页面,A页面保持不动, B页面从顶部向下滑出消失
问题:B页面滑入之前会出现短暂的黑屏
我的代码如下:
进入B页面的代码:
var intent = Intent(this,HomeAddActivity::class.java) startActivity(intent) overridePendingTransition(R.anim.bottom_in,0)
退出B页面的代码:
finish() overridePendingTransition(0, R.anim.bottom_out)
解决思路:不动的那个页面的动画不能写空,也要定义一个动画给它。
解决办法:
var intent = Intent(this,HomeAddActivity::class.java) intent.putExtra("data",homeCreateData as Serializable) startActivity(intent) overridePendingTransition(R.anim.bottom_in,R.anim.bottom_no)
finish() overridePendingTransition(R.anim.bottom_no, R.anim.bottom_out)
不动的动画:bottom_no.xml <!-- ** 一定要设置跟进入动画相同的时间,解决黑屏的关键 **--> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="300" android:fromYDelta="0" android:interpolator="@android:anim/decelerate_interpolator" android:toYDelta="0" /> </set>
进入的动画:bottom_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:duration="300" android:interpolator="@android:interpolator/accelerate_decelerate" tools:ignore="ResourceName"> <translate android:fromYDelta="100%p" android:toYDelta="0"/> </set>
退出的动画:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:duration="300" android:interpolator="@android:interpolator/linear" tools:ignore="ResourceName"> <translate android:fromYDelta="0" android:toYDelta="100%p"/> </set>
以上是关于Activity切换动画实现,以及黑屏问题解决的主要内容,如果未能解决你的问题,请参考以下文章