【发布时间】:2017-01-04 18:38:51
【问题描述】:
此代码在所有设备上都按预期工作,除了激活 STAMINA 模式的 Sony 设备:
int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
getFragmentManager()
.beginTransaction()
.setCustomAnimations(backStackCount == 0? R.animator.noanim : R.animator.slide_in,
R.animator.zoom_out, R.animator.zoom_in, backStackCount == 0? R.animator.noanim : R.animator.slide_out)
.replace(R.id.container, fragment, String.valueOf(backStackCount))
.addToBackStack(fragment.getClass().toString())
.commit();
在 STAMINA 模式下,第一个 Fragment 正常加载,但下一个 Fragment 根本不显示(屏幕保持黑色)。如果我注释掉 setCustomAnimations 方法,事务将按预期工作。这是怎么回事,如何让事务在激活的 STAMINA 模式下工作?
R.animator.slide_in:
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:valueFrom="1.0"
android:valueTo="0"
android:propertyName="xFraction"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
编辑:自己解决,见下文
【问题讨论】:
标签: android android-fragments fragmenttransaction sony-xperia