gpt4 book ai didi

android - Lollipop Activity 共享元素过渡与淡入淡出

转载 作者:行者123 更新时间:2023-12-03 17:42:27 24 4
gpt4 key购买 nike

我正在尝试做一个简单的共享元素转换,其中一行单击的列表项转换到结果 Activity 的顶部标题 View 。我希望顶部标题 View 占据列表项的位置,淡入,然后转换到其最终位置。

这是简单的sharedElementEnterTransition我为被调用的 Activity 写的:

<?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 突然在现场弹出然后转换到最终位置。

这是我开始 Activity 的地方
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 类,我发现目标 View 不是预期的,因此我强制它测试它,它似乎工作。但是,我不知道这是否是完美的解决方案,因为我也同意它应该像其他转换一样工作(自动)

sharedElementEnterTransition = Fade(Visibility.MODE_IN).addTarget(your_view)

如果你想要一个顺序转换,你可能需要创建一个 TransitionSet 并添加它
val fadeIn = Fade(Visibility.MODE_IN).addTarget(your_view)
val move = TransitionInflater.from(context)
.inflateTransition(android.R.transition.move)

val transitionSet = TransitionSet().apply {
ordering = ORDERING_TOGETHER
addTransition(move)
addTransition(fadeIn)
}

sharedElementEnterTransition = transitionSet

关于android - Lollipop Activity 共享元素过渡与淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32899135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com