グローバルアプリケーションにフィードデータのリストがあります。 私はそれが仕事をしてMainAcitivty
終了アクティビティのカスタム共有要素の遷移
// 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());
に私のRecyclerView
からの移行をするためにこのコードを使用していました。しかし、問題は、DetailActivity
では、ユーザーがスクロールしてリスト内のフィード項目(スクロールインデックスも変更する)を変更できる別の垂直リストがあることです。
ときにバックDetailActivity
からのプレスは、私が出口アニメーション遷移が正しい視聴フィードインデックス上で実行します。どうやってやるの?
MainActivity
のコードonActivityResult
です。リサイクルを正しい位置にスクロールしますが、終了トランジションのアニメーションは正しい位置ではありません。
int currentFeedIndex = Application.getInstance().getCurrentViewingFeed();
if (currentFeedIndex > 0 && currentFeedIndex < adapter.getItemCount()) {
if (gridLayoutManager != null) {
gridLayoutManager.scrollToPositionWithOffset(currentFeedIndex + 1, 0);
}
}
私は、終了アニメーションを実行する前に、ペアのリストを変更する方法を探しています
更新:ここで私は、ビューへの移行名を割り当てるDetailActivityのレイアウトがある
<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>
発信者活動に
'DetailActivity'のビューに対する名前?私はあなたがDetailActivity' 'へMainActivity''からpoint.Enterアニメーションを取得しないコード – rom4ek
は、これらの遷移名で正しいです。しかし、 'DetailActivity'には、別のアイテム(itemIdを変更する)に切り替えるためのビューページがあります。私がしたいのは、 'DetailActivity'から' MainActivity'に戻るときにexitアニメーションのために新しいitemIdを更新することです。 – R4j