当项目内部的视图更改时,对recyclerview的项目进行动画处理

时间:2020-05-02 16:52:14

标签: android android-recyclerview android-animation

以下是我的recyclerview项之一的布局。我想在隐藏或显示description视图时进行动画处理。因此,我已将animatelayoutChanges="true"设置为itemView,并使用((ViewGroup)((RecordViewHolder)viewHolder).itemView).getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING);

在适配器中启用了过渡
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/itemView"
android:animateLayoutChanges="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<LinearLayout
    android:id="@+id/daily_record_show"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:animateLayoutChanges="true"
    android:layout_height="wrap_content">
    <LinearLayout
        android:id="@+id/daily_record_show_inner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="5dp"
        android:paddingBottom="5dp">

        <TextView
            android:id="@+id/dateView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingRight="5dp"
            android:text="12-03-2018"
            android:visibility="gone" />

        <TextView
            android:id="@+id/name"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="60"
            android:drawablePadding="10dp"
            android:text="@string/carried_forward"
            android:textAlignment="textStart"
            android:textColor="?android:attr/textColorPrimary"
            android:textSize="16sp"
            android:visibility="visible" />

        <TextView
            android:id="@+id/amt"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="40"
            android:paddingEnd="20dp"
            android:singleLine="true"
            android:text="100"
            android:textAlignment="textEnd"
            android:textColor="?android:attr/textColorPrimary"
            android:textSize="16sp" />
    </LinearLayout>
    <TextView
        android:id="@+id/description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:text="@string/backup_to_google_drive_text"
        android:textSize="14sp"
        android:textStyle="italic"
        android:visibility="gone" />

</LinearLayout>
<LinearLayout> some other views ...</LinearLayout>

对5个项目的布局进行动画处理。超过5个项目,则项目不必要进行动画处理。此外,这些项目在滚动时还会显示其他空格。

我需要一些建议,以使动画在任何数量的项目中都能流畅运行,并在滚动时删除那些不需要的空间。

0 个答案:

没有答案