Android共享视图过渡与淡入淡出过渡相结合

Android共享视图过渡与淡入淡出过渡相结合,android,android-layout,android-activity,transition,Android,Android Layout,Android Activity,Transition,我有一个通过共享元素动画传递的活动。这是一个基本的ImageView转换,工作正常 现在,对于活动中的其他元素,我想要一个淡入淡出的动画。现在,这适用于除与ImageView(共享视图)位于同一视图组中的视图以外的所有图元 我的布局如下。ImageView位于折叠工具栏布局和AppBarLayout中,我在oncreate中设置了淡入淡出过渡,如下所示: getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);

我有一个通过共享元素动画传递的活动。这是一个基本的ImageView转换,工作正常

现在,对于活动中的其他元素,我想要一个淡入淡出的动画。现在,这适用于除与ImageView(共享视图)位于同一视图组中的视图以外的所有图元

我的布局如下。ImageView位于折叠工具栏布局和AppBarLayout中,我在oncreate中设置了淡入淡出过渡,如下所示:

    getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);
    super.onCreate(savedInstanceState);

    Fade fade = new Fade(Fade.IN);
    fade.setDuration(4000);

    getWindow().setEnterTransition(fade);
    setContentView(R.layout.article_details);
布局:

<?xml version="1.0" encoding="utf-8"?>


我找到了这个“问题”的解决方案。问题是这是故意的行为。您可以通过调用

getWindow().setSharedElementsUseOverlay(false);`
但这往往会产生人工制品。最后,我以任何一种方式完成了这项工作,并删除了我活动的背景,带有一个透明的主题:

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

真的
@android:彩色/透明
因为我的目标是在折叠工具栏布局中淡入文本,所以我无法实现这一点,因为ImageView是布局的子级。我最后做的是添加另一个ImageView,它的图像与在活动之间设置动画的图像相同,并在活动共享元素转换完成后将其与塌陷工具栏布局一起淡入。由于共享元素映像已经就位,新的ImageView在UI中没有任何区别。这个解决方案当然不是最优的,但对于我的问题来说是唯一的——考虑到API的行为。退出活动时,我只需隐藏替换图像视图,用户就会看到共享元素图像在父活动中转换到位

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