在项目的动画期间滚动时,RecyclerView的项目重叠

时间:2019-01-14 01:04:43

标签: android animation scroll android-recyclerview

我有一个 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);
});

有什么办法可以绕过这种不良行为?我想保留动画,但不要重叠。

0 个答案:

没有答案