Android 在项目';s动画
我有一个RecyclerView,我在项目的CardView中设置了Android 在项目';s动画,android,animation,scroll,android-recyclerview,Android,Animation,Scroll,Android Recyclerview,我有一个RecyclerView,我在项目的CardView中设置了android:animateLayoutChanges=“true”,因为当我单击它时,我正在将其布局从“可视化模式”更改为“编辑模式”。但是,如果单击该项目,然后立即滚动,则项目将重叠。基本上,正在设置动画的项目不响应滚动。但是,如果我设置android:animateLayoutChanges=“false”,它们不会重叠,但我会丢失动画 我尝试过在物品设置动画时禁用滚动,或者简单地设置android:animateLay
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);
});
...
...
`
holder.cardView.setOnClickListener(v->{
holder.visualizationLayout.setVisibility(View.GONE);
holder.editingLayout.setVisibility(View.VISIBLE);
});
你有没有办法避开这种不良行为?我希望保留动画,但不重叠。尝试此链接