アプリにいくつかの CardView があり、それらを Google Keep のカードのように機能させたいと考えています。たとえば、テキストのあるカードをクリックすると、(アニメーションで) 別のビューに展開されます。
意味がわからない場合は、Google Keep Android アプリでメモを作成し、メモが作成されたときに表示されるカードをタップします。これはまさに私が自分のアプリで実現したいことです。
どうすればこれを行うことができますか?
アプリにいくつかの CardView があり、それらを Google Keep のカードのように機能させたいと考えています。たとえば、テキストのあるカードをクリックすると、(アニメーションで) 別のビューに展開されます。
意味がわからない場合は、Google Keep Android アプリでメモを作成し、メモが作成されたときに表示されるカードをタップします。これはまさに私が自分のアプリで実現したいことです。
どうすればこれを行うことができますか?
ロリポップの新機能!
2 つの画面に共通する「共有要素」を宣言することで、2 つの状態の間をスムーズに遷移させることができます。
アルバム_グリッド.xml:
<ImageView
…
android:transitionName="@string/transition_album_cover" />
album_details.xml:
<ImageView
…
android:transitionName="@string/transition_album_cover" />
ジャワ:
AlbumActivity.java
Intent intent = new Intent();
String transitionName = getString(R.string.transition_album_cover);
…
ActivityOptionsCompat options =
ActivityOptionsCompat.makeSceneTransitionAnimation(activity,
albumCoverImageView, // The view which starts the transition
transitionName // The transitionName of the view we’re transitioning to
);
ActivityCompat.startActivity(activity, intent, options.toBundle());
ここでは、2 つの画面で同じ transitionName を定義しています。新しいアクティビティを開始すると、このトランジションは自動的にアニメーション化されます。共有要素に加えて、入り要素と出要素の振り付けもできるようになりました。