场景:
- 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>
本文介绍了解决页面切换过程中出现黑屏现象的方法。通过为每个页面定义合适的动画,并确保不动页面也有动画设置,可以有效避免黑屏问题。文章提供了具体的代码实现。
3523

被折叠的 条评论
为什么被折叠?



