【问题标题】:Shared element transition not working in Android共享元素转换在 Android 中不起作用
【发布时间】:2017-05-02 16:23:05
【问题描述】:

我已经设置了我的应用样式

<item name="android:windowContentTransitions">true</item>

在卡片视图中设置图像中的过渡名称

<ImageView
        android:id="@+id/pet_image"
        android:layout_width="match_parent"
        android:layout_height="210dp"
        android:layout_alignParentTop="true"
        android:scaleType="centerCrop"
        android:src="@drawable/placeholder"
        android:visibility="gone"
        android:transitionName="@string/transition_name"/>

在第二个activity中设置图片中的transition名称

<ImageView
    android:id="@+id/imgDisplay"
    android:layout_width="match_parent"
    android:layout_height="566dp"
    android:scaleType="fitCenter"
    android:transitionName="@string/transition_name"
    />

并将卡片的 onClick 侦听器设置为此以进行共享元素转换

//animation
        String transitionName = v.getResources().getString(R.string.transition_name);
        View viewStart = v.findViewById(R.id.entire_card);
        ActivityOptionsCompat options =
                ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)mContext, viewStart, transitionName);

        v.getContext().startActivity(intent, options.toBundle());

但是当我点击卡片视图查看第二个活动时,动画没有运行。知道为什么吗?

【问题讨论】:

    标签: android android-intent android-animation android-cardview


    【解决方案1】:

    你是如何在activity/fragment中绑定pet_image的?

    你可以试试这个方法:

    ActivityOptionsCompat options =
                    ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)mContext, 
                                          (View) pet_image, "transitionName");
    

    【讨论】:

    • 你用的是哪个安卓版本的设备?
    • 您上面的代码是说您正在使用 whole_card 进行转换,并且在您的第一个活动布局中,您已经为 pet_image 提供了转换。修复它并检查。
    • 它足够高,可以使用共享元素过渡,我有另一个应用程序也使用它,它在同一设备上显示过渡。
    • 查看以上评论。
    • 你说得对,我改变了它,以便为 pet_image 而不是 whole_card 提供正确的过渡,但它仍然无法正常工作
    【解决方案2】:

    如果共享元素嵌套在另一个视图中,您需要确保父视图也被转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      • 2022-06-25
      • 1970-01-01
      相关资源
      最近更新 更多