【发布时间】:2017-03-31 00:30:17
【问题描述】:
我在足球应用程序中遇到以下情况。
我们希望在所有这些活动之间实现共享元素。
在我的第一个Activity 的视图中,我设置了一个android:transitionName,它对应于第二个Activity 上的相同transitionName。
<!-- item_viewholder (first activity) -->
<CustomViewContainingImageViewAndTextView
android:id="@+id/item_match_hometeam"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:transitionName="@string/transition_morph_match_header_homeTeam" />
<!-- header (second activity) -->
<CustomViewContainingImageViewAndTextView
android:id="@+id/item_match_hometeam_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:transitionName="@string/transition_morph_match_header_homeTeam" />
我开始第二个Activity
final String awayTeamTransition = activityContext.getString(R.string.transition_morph_match_header_awayTeam);
final String homeTeamTransition = activityContext.getString(R.string.transition_morph_match_header_homeTeam);
final ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(
activityContext,
Pair.create(homeTeam, homeTeamTransition),
Pair.create(awayTeam, awayTeamTransition));
activityContext.startActivity(intent, options.toBundle());
现在这个过渡效果很好,但如果我想要更深入的细节怎么办。
显示有关所选团队的统计信息,我也想在那里共享过渡?
当CustomViewContainingImageViewAndTextView 被点击到新的transitionName 时,我尝试以编程方式设置transitionName。
final String teamViewTransition = activityContext.getString(R.string.transition_morph_teamview_to_detail);
//teamView is the view that was clicked.
ViewCompat.setTransitionName(teamView, teamViewTransition);
final ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(
activityContext,
Pair.create(teamView, teamViewTransition));
activityContext.startActivity(teamInfoActivityIntent, options.toBundle());
这个transitionName对应第三个Activity上的ImageView
<ImageView
android:id="@+id/team_info_header_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:transitionName="@string/transition_morph_teamview_to_detail" />
然而 enterTransition 失败,但 exitTransition 有效!
但是,这会破坏从 2 --> 1
视力。 希望有人花一些时间来解决这个问题。
提前致谢
【问题讨论】:
标签: android shared-element-transition