共有された 2 つのアクティビティ間で共有要素遷移アニメーションを作成しようとしていますImageView
。
最初のものにはRecyclerView
アイテムクリックリスナーがあり、クリック後、トランジションで他のアクティビティを開始する必要があります。
開始されたアクティビティを閉じるとアニメーションは正常に機能しますが、開始すると機能しません。
のアイテムをタップした後RecyclerView
、少し拡大し、少しフリーズしてから、空白の黒い「ウィンドウ」と別の ImageView が表示されますが、スムーズにアニメーション化されません。
これは、他のアクティビティを開くコードです。
private void openActivity(WallpapersAdapter.WallsHolder wallsHolder, int index, final HashMap<String, String> data) {
Toast.makeText(this,data.get(WallpapersActivity.WALL),Toast.LENGTH_SHORT).show();
final Intent intent = new Intent(wallsActivity, ViewerActivity.class);
intent.putExtra("wallUrl", data.get(WallpapersActivity.WALL));
intent.putExtra("wallName", data.get(WallpapersActivity.NAME));
String indextext = Integer.toString(index);
intent.putExtra("indexText", indextext);
String transName = "view_" + indextext;
ViewCompat.setTransitionName(wallsHolder.view, transName);
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
wallsActivity, wallsHolder.view, transName);
startActivity(intent, options.toBundle());
}
編集: これは、初期ビューのレイアウトのコードです:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:foreground="?selectableItemBackground">
<ProgressBar
android:id="@+id/progress"
style="?progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="24dp" />
<jahirfiquitiva.project.views.SquareImageView
android:id="@+id/wall"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
tools:ignore="ContentDescription,UnusedAttribute" />
<LinearLayout
android:id="@+id/titlebg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
style="@style/AboutContent"
android:alpha="0.3"
android:background="#000000"
tools:ignore="UnusedAttribute">
<TextView
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="center"
android:textColor="#ffffffff"
android:textSize="@dimen/abc_text_size_medium_material"
tools:text="Title" />
</LinearLayout>
</FrameLayout>
前もって感謝します。
編集 2: これは、どのように見えるかを示すビデオです: https://drive.google.com/file/d/0Bw52d3_ZiSb9YWc2Z1Z4MnkwNm8/view?usp=sharing