我在Android 5.0中遇到了一个关于ImageView在Activity之间过渡的奇怪问题/bug。
我试图将来自Activity A中Fragment A的缩略图映射到Activity B中Fragment B的头像上。大多数时间它表现良好,但有时会稍微出现问题。
以下是出现问题时的图片:
https://istack.dev59.com/Wt248.webp
理应填满整个区域。两个ImageView的ScaleType都设置为CENTER_CROP,所以我无法想象这是否为问题所在。
值得注意的是,当在Activity B中滚动时(所有内容都包含在自定义ScrollView中,在滚动时更改ImageView的填充),问题会立即解决。
启动Activity B的代码非常简单:
这里是
此外,这是我主题风格的一部分:
有什么想法吗?
值得注意的是,当在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>
有什么想法吗?
@android:transition/move
过渡效果。 - Michell BaksetPadding()
代码,该 bug 是否仍然存在?我只是想了解为什么会出现这种情况的根本原因。 - Alex LockwoodsetPadding()
,它就会出现这种情况,但如果我这样做,当我滚动时它不会自动修复。它只会保持错误状态。 - Michell Bak