web-dev-qa-db-ja.com

CardViewsを展開して、Google Keepカードのような詳細を表示するにはどうすればよいですか?

アプリにいくつかのCardViewがあり、GoogleKeepのカードのように機能させたいです。たとえば、テキストのあるカードをクリックすると、(アニメーションとともに)別のビューに展開されます。

意味がわからない場合は、Google Keep Androidアプリで、メモの作成時に表示されるカードをタップしてください。これがまさに私がやりたいことです。私のアプリ。

どうすればこれを行うことができますか?

13
user2900772

ロリポップの新機能!

アクティビティ+フラグメント遷移

2つの画面に共通する「共有要素」を宣言することで、2つの状態間のスムーズな移行を作成できます。

album_grid.xml:

<ImageView
    …
    Android:transitionName="@string/transition_album_cover" />

album_details.xml:

<ImageView
    …
    Android:transitionName="@string/transition_album_cover" />

Java:

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を定義します。新しいアクティビティを開始すると、この遷移は自動的にアニメーション化されます。共有要素に加えて、要素の出入りを振り付けできるようになりました。

28
shkschneider