2015-03-18 35 views
1

我有一个cardView列表,里面有两个TextView,当点击其中一个卡片视图时,一个由相同卡片视图结构加上一个webview组成的详细视图活动。我的目的是让卡片在新活动打开并且文本顺利移动到位时从列表中扩展出来,到目前为止,我似乎无法将卡片视图单独设置为动画,只是闪烁,然后淡入到位。Android SharedElement转换不起作用

推出新的活动:styles.xml(V1)的

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this,cardview,"cardview"); 
     Intent i = new Intent(this,DetailView.class); 
     startActivity(i,options.toBundle()); 

动画部分

<item name="android:windowContentTransitions">true</item> 
    <item name="android:windowSharedElementEnterTransition">@transition/cardtransition</item> 
    <item name="android:windowAllowEnterTransitionOverlap">true</item> 
    <item name="android:windowAllowReturnTransitionOverlap">true</item> 

cardtransition.xml

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android" > 
<changeBounds android:duration="40000"/> 
<changeTransform android:duration="40000" /> 
</transitionSet> 

回答

2

我已经想通了,当使用任何类型的列表中的共享元素转换,你不能在列表项的XML布局中使用android:transitionName,因为n列表中的每个项目都具有相同的transitionName。您必须在运行时动态设置过渡名称,以代表您要动画的特定项目。