我正在尝试进行简单的共享元素转换,其中单击的列表项的一行转换为结果活动的顶部标题视图。我希望顶部标题视图占据列表项的位置,使其自身淡入,然后变换到其最终位置。
这是我为被叫活动编写的简单sharedElementEnterTransition
:
<?xml version="1.0" encoding="utf-8"?>
<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
<fade android:fadingMode="fade_out" />
<changeBounds />
<changeTransform />
<changeImageTransform />
</transitionSet>
但是,fade
过渡没有做任何事情。我看到生成的视图突然当场弹出,然后转变为最终位置。
我在这里开始活动
view.setOnClickListener(view -> {
final Intent intent = new Intent(...);
view.setTransitionName("test");
final ActivityOptions options =
ActivityOptions.makeSceneTransitionAnimation(activity, view, "test");
startActivity(intent, options.toBundle());
});
无法完全弄清楚正在发生什么。有人有什么想法吗?布局代码正是您希望使用android:transitionName="test"
使用的代码。
同时调试Visibility类,我发现目标视图不是预期的,因此我强迫它对其进行测试,并且看起来可行。但是,我认为这不是一个好的解决方案,我会说这在TransitionSet中不起作用。
sharedElementEnterTransition = Fade(Visibility.MODE_IN).addTarget(your_view)