我有一个 RecyclerView ,并且已在该商品的 CardView 中设置了android:animateLayoutChanges="true"
,因为我将其布局从“可视化模式”更改为当我单击它时,将出现“编辑模式”。但是,如果我单击该项目然后立即滚动,则这些项目将重叠。基本上,被动画处理的项目不会响应滚动。但是,如果我设置android:animateLayoutChanges="false"
,它们将不会重叠,但是我会丢失动画。
我正在尝试诸如在项目设置动画时禁用滚动功能,或者只是设置android:animateLayoutChanges="false"
并使用this.notifyItemChanged(holder.getAdapterPosition())
来导致回收站上的其他项目动画化以正确填充空间,但是单击的项目本身没有动画。
<android.support.v7.widget.CardView
android:id="@+id/root_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="false"
android:clickable="true"
android:elevation="10dp"
android:focusable="true"
android:padding="5dp"
app:cardBackgroundColor="#ffffff"
app:cardCornerRadius="1dp"
app:cardUseCompatPadding="true"
app:contentPadding="5dp">
<LinearLayout
android:id="@+id/visualization_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="visible">
...
</LinearLayout>
<LinearLayout
android:id="@+id/editing_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
...
</LinearLayout>
</android.support.v7.widget.CardView>`
holder.cardView.setOnClickListener(v -> {
holder.visualizationLayout.setVisibility(View.GONE);
holder.editingLayout.setVisibility(View.VISIBLE);
});
有什么办法可以绕过这种不良行为?我想保留动画,但不要重叠。