我遇到了一个关于ImageView
Android 5.0 中活动之间转换的奇怪问题/错误。
我正在尝试将缩略图从Fragment A
(in ) 转换为( in Activity A
) 的标题图像。它在大多数情况下运行良好,但有时会稍微有点混乱。Fragment B
Activity B
这是它搞砸时的样子:
自然,它应该填满整个区域。两个 ImageViews 都设置为ScaleType.CENTER_CROP
,所以我无法想象这是问题所在。
奇怪的是,该问题在滚动后立即自行修复Activity B
(所有内容都包含在一个子类ScrollView
中,该子类在滚动时会更改ImageView
填充)。
启动代码Activity B
非常简单:
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
activity, thumbImageView, "cover"); // "cover" is the shared element name for both ImageViews
ActivityCompat.startActivity(activity, intent, options.toBundle());
以下是可观察ScrollView
侦听器的代码:
scrollview.setOnScrollChangedListener(new OnScrollChangedListener() {
@Override
public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) {
// Such parallax, much wow
headerImageView.setPadding(0, (int) (t / 1.5), 0, 0);
}
});
另外,这是我的主题风格的一部分:
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
有任何想法吗?