Ho una lista di dati di alimentazione nell'applicazione globale. Ho usato questo codice per fare una transizione dal mio RecyclerView
in MainAcitivty
Transizione elemento condiviso personalizzato nell'attività finale
// selected item event
Intent intent = new Intent(this, DetailActivity.class);
intent.putExtra("item_feed_index", selectedItemIndex);
FeedViewHolder viewHolder = getViewHolderFromPosition(position);
Pair<View, String> pair1 = Pair.create(viewHolder.imageView, "TransitionName.Feed.Image");
Pair<View, String> pair2 = Pair.create(viewHolder.textView, "TransitionName.Feed.Text");
Pair<View, String> pair3 = Pair.create(viewHolder.button, "TransitionName.Feed.Button");
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, pair1, pair2, pair3);
startActivity(intent, options.toBundle());
funziona. Ma il problema è che in DetailActivity
, ho un altro elenco verticale, che l'utente può scorrere in su/su per cambiare la voce Feed in lista (che cambia anche l'indice di scorrimento).
Quando si preme indietro da DetailActivity
, voglio eseguire la transizione dell'animazione di uscita sull'indice di feed di visualizzazione corretto. Come lo posso fare?
Questo è il codice onActivityResult
in MainActivity
, scorre il riciclo nella posizione corretta, ma l'animazione di transizione di uscita non è la posizione corretta.
int currentFeedIndex = Application.getInstance().getCurrentViewingFeed();
if (currentFeedIndex > 0 && currentFeedIndex < adapter.getItemCount()) {
if (gridLayoutManager != null) {
gridLayoutManager.scrollToPositionWithOffset(currentFeedIndex + 1, 0);
}
}
sto cercando il modo per cambiare la lista coppia prima di eseguire l'animazione uscita
Aggiornamento: qui è il layout di DetailActivity, dove ho assegnare nomi di transizione alle viste
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imgFeed"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:transitionName="TransitionName.Feed.Image" />
<TextView
android:id="@+id/tvLogo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:transitionName="TransitionName.Feed.Text"/>
<Button
android:transitionName="TransitionName.Feed.Button"
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_below="@+id/tvLogo"/>
</RelativeLayout>
Potrebbe pubblicare il codice come hai assegnato transizione nomi alle viste di 'DetailActivity'? – rom4ek
@ rom4ek Ho aggiornato il codice – R4j