我做了一些研究,发现没有相关信息,虽然它似乎是一个常见的用例。
我有一个回收者视图,其中包含具有以下布局的项目:
<android.support.v7.widget.CardView
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/groups_card_view"
android:layout_width="300dp"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
tools:cardUseCompatPadding="true"
app:cardCornerRadius="@dimen/standard_card_corner_radius"
app:contentPadding="@dimen/inner_card_content_padding"
app:cardBackgroundColor="@color/outer_card_background"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent">
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
...some childs...
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/words_recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:layout_gravity="center_horizontal"/>
</android.support.v7.widget.CardView>
基本上重要的是,一个RecyclerView的项目在CardView中包含另一个RecyclerView。
在某些时候,我想用标准删除动画从内部RecyclerView中删除一个项目,我的目标是实现这种方式:
class WordsRecyclerAdapter extends RecyclerView.Adapter {
private List<String> wordsToTrack;
...basic adapter code...
class WordsViewHolder extends RecyclerView.ViewHolder {
...basic holder code...
@OnClick(R.id.img_btn_delete)
public void deleteButtonOnClick() {
wordsToTrack.remove(getAdapterPosition());
notifyItemRemoved(getAdapterPosition());
}
}
}
项目删除,它工作正常,除了...包装内部RecyclerView的CardView在项目被删除时收缩,因此项目删除的动画在下面的gif上看起来像:
所以问题是 - 如何让它与适当的动画一起工作?