Как расширить CardViews, чтобы показать больше деталей, таких как карты Google Keep?

У меня есть несколько карт в моем приложении, и я хочу, чтобы они работали как карты в Google Keep. Например, когда я нажимаю на карту с текстом, она расширяется (с анимацией) в другое представление.

Если вы не знаете, что я имею в виду, создайте заметку в приложении Google Keep Android, нажмите на карту, которая появляется при создании заметки. Это именно то, что я хочу в моем приложении.

Как мне это сделать?

Ответ 1

Новое в Lollipop!

Activity + Fragment Transitions

Объявив "общие элементы", которые являются общими для двух экранов, вы можете создать плавный переход между двумя состояниями.

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());

Здесь мы определяем одно и то же имя перехода на двух экранах. При запуске нового действия и этот переход анимируется автоматически. В дополнение к общим элементам теперь вы можете также хореографировать входящие и выходящие элементы.