我有一个带有两个TextView的cardViews列表,当其中一个卡片视图被点击时,一个详细视图活动由同一个卡片视图结构和一个webview组成。我的意图是当新活动打开并且文本顺利移动到位时,卡片会从列表中扩展出来,截至目前,我似乎无法单独将卡片视图设置为动画,它只是闪烁然后淡出到位。
启动新活动:
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this,cardview,"cardview");
Intent i = new Intent(this,DetailView.class);
startActivity(i,options.toBundle());
styles.xml(v1)的动画部分
<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>
答案 0 :(得分:4)
我已经弄清楚了,当在任何类型的列表中使用共享元素转换时,你不能在列表项的XML布局中使用android:transitionName,因为那时列表中的每个项都具有相同的transitionName。您必须在运行时在要为其设置动画的特定项目的代码中动态设置转换名称。