我制作了一个非常简单的应用程序,当使用对话框主题启动活动时,它使用共享元素过渡 (在github上的源代码)。
我得到了以下结果:
正如您所看到的,过渡/动画存在两个问题:
- 该动画仅在对话框活动区域可见,因此会被裁剪并且看起来很难看。
- 当我点击外部以返回时,没有过渡/动画。
如何解决这些问题?任何帮助都将不胜感激。
编辑: 根据Quanturium的答案,我做了以下几件事才使其工作:
使用以下主题而不是对话框主题:
<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作为对话框的背景,以实现圆角和阴影效果。
当用户点击CardView之外的区域时,请调用finishAfterTransition();
现在它看起来像这样(代码),CardView需要进行优化以更好地匹配对话框,但至少它已经可以使用了: