从一个片段过渡到第二个片段时,我对共享元素使用动画,同时为一个片段设置动画ImageView。一切正常。但是当我将ImageView第二个片段中的这个包装到另一个片段中时LinearLayout:
<LinearLayout
android:transitionName="@string/image_transition"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@color/colorPrimaryDark">
<ImageView
android:id="@+id/iv_city_image"
android:transitionName="@string/image_transition"
android:layout_width="match_parent"
android:layout_height="200dp"
android:scaleType="matrix"
android:adjustViewBounds="true"
android:layout_gravity="center"
android:contentDescription="@string/content_descr_city_image" />
</LinearLayout>
动画消失。为什么会这样?
这是之前发生的事情:
这就是第二个片段的整个布局之前的样子:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools" >
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/iv_city_image"
android:transitionName="@string/image_transition"
android:layout_width="match_parent"
android:layout_height="200dp"
android:scaleType="matrix"
android:adjustViewBounds="true"
android:layout_gravity="center"
android:contentDescription="@string/content_descr_city_image" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/header_background"
android:orientation="vertical"
android:padding="@dimen/padding" >
<TextView
android:id="@+id/tv_city_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:textSize="22sp"
android:textStyle="bold"
android:textColor="@color/white"
tools:text="@tools:sample/cities" />
<TextView
android:id="@+id/tv_duration"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start"
android:textSize="16sp"
android:textColor="@color/white"
tools:text="@tools:sample/cities" />
</LinearLayout>
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/padding">
<TextView
android:id="@+id/tv_weather"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textSize="24sp"
tools:text="@tools:sample/cities"/>
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</LinearLayout>
以及包裹ImageView在另一个之后的样子LinearLayout:


似乎不需要 LinearLayout
android:transitionName="@string/image_transition"。