2016-09-26 67 views
0

工作,我一直在使用我的應用程序共享元素的過渡使用ActivityOptionsCompat.makeSceneTransitionAnimation()ActivityCompat.startActivityForResult()與以下一些XML代碼:這裏的Android共享元素轉換不<include>標籤

... 

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:transitionName="@string/transition_1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="16sp" 
    android:paddingBottom="16sp"> 

    ... 

</android.support.v7.widget.CardView> 

... 

一切都很正常。

但是,由於我多次使用我的CardView中的內容,因此我決定將其移至新佈局並使用<include>來引用它。

這裏是新的佈局文件:

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    ... 

</android.support.v7.widget.CardView> 

而舊文件:

... 

<include layout="@layout/my_card_content" 
    android:transitionName="@string/transition_1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="16sp" 
    android:paddingBottom="16sp" /> 

... 

現在,出於某種原因,共享的元素轉換似乎不工作。

我該如何解決這個問題?

回答

1

原來,問題是因爲我需要包括佈局內android:transitionName用我的卡讓我的卡片佈局是這樣的:

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:transitionName="@string/transition_1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    ... 

</android.support.v7.widget.CardView> 

意思是說不需要我<include>標籤:

<include layout="@layout/my_card_content" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="16sp" 
    android:paddingBottom="16sp" /> 
相關問題