gpt4 book ai didi

android - 与 Dialog Activity 共享元素转换

转载 作者:IT老高 更新时间:2023-10-28 23:24:10 32 4
gpt4 key购买 nike

我组装了一个非常简单的应用程序,它在使用对话框主题 (source code on github) 启动 Activity 时使用共享元素转换。

我得到了以下结果:

sample app

如您所见,过渡/动画存在两个问题:

  1. 该动画仅在对话框 Activity 区域可见,因此它会剪辑并且看起来很难看。
  2. 当我在 Activity 之外点击时没有过渡/动画回去吧。

如何解决这些问题?任何帮助将不胜感激。

编辑:在 Quanturium 的回答之后,我做了以下事情来让它工作:

使用以下主题而不是 Dialog 主题:

<style name="AppTheme.Transparent" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">true</item>
</style>

使用 CardView 作为 Dialog 外观以及圆角和阴影的背景。

调用finishAfterTransition();当用户在 CardView 之外点击时。

现在看起来像这样 (code),CardView 需要改进以更好地匹配 Dialog,但它至少可以工作。:

working

最佳答案

Activity 转换是这样工作的。当您开始第二个 Activity 时,它会以透明背景显示在第一个 Activity 的顶部。共享元素的定位方式与它们在第一个 Activity 上的位置相同,然后动画到第二个 Activity 上指定的正确位置。

在您的情况下,您使用的是 android:theme="@style/Theme.AppCompat.Dialog"这意味着第二个 Activity 的绘图区域的大小小于第一个 Activity 的大小。这解释了在外部单击时的剪辑和无过渡。

您想要做的是摆脱该主题,并使用深色背景/阴影实现自己的布局,以便能够执行平滑过渡。

关于android - 与 Dialog Activity 共享元素转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28507907/

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