Vários elementos compartilhados
Eu tenho a seguinte situação dentro de um aplicativo de futebol.
Queremos implementar os elementos compartilhados entre todas essas atividades.
Na minha opinião, no primeiroActivity
para a partida eu estabeleci umandroid:transitionName
que corresponde ao mesmo nome da transição no segundoActivity
.
<!-- 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" />
Eu começo o segundoActivity
com
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());
Agora, essa transição funciona bem, mas e se eu quiser ter um detalhe ainda mais profundo?
Exibindo estatísticas sobre a equipe selecionada e também quero ter uma transição compartilhada?
Eu tentei definir otransitionName
programaticamente quando oCustomViewContainingImageViewAndTextView
foi clicado para o novotransitionName
.
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());
este transiçãoName corresponde aoImageView
no terceiroActivity
<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" />
No entanto, o enterTransition falha, mas o exitTransition funciona!
No entanto, isso interrompe a exitTransition de 2 -> 1
Vista. Espero que alguém leve algum tempo para descobrir isso.
desde já, obrigado