左右对动画回收器视图项目进行动画处理,以告知用户滑动选项

时间:2019-12-30 05:16:59

标签: android android-recyclerview android-animation recycler-adapter

我已经实现了一种手势,以提示用户我们在iOS应用中拥有的滑动选项。它看起来像-

enter image description here

我是Android应用程序开发的新手。除了动画之外,我已经实现了所有类似屏幕的功能。如何在Android应用程序中为回收者视图项目添加相同的动画?

1 个答案:

答案 0 :(得分:1)

最后,我自己实现了。

这里是item_layout.xml-

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <View
        android:id="@+id/leftView"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:layout_alignTop="@+id/main_layout"
        android:layout_alignBottom="@id/main_layout"
        android:layout_alignParentStart="true"
        android:background="@color/darkGray" />

    <View
        android:id="@+id/rightView"
        android:layout_width="100dp"
        android:layout_height="match_parent"
        android:layout_alignTop="@+id/main_layout"
        android:layout_alignBottom="@+id/main_layout"
        android:layout_alignParentEnd="true"
        android:background="@color/darkRed" />

    <RelativeLayout id="@+id/main_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        ...
    </RelativeLayout>    

</RelativeLayout>

这是RecyclerView.Adapter的实现方式-

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout, parent, false);

    return new ViewHolder(view);
}

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
    ....
    ....

    if (position == 0) {
        ObjectAnimator animationLeft = ObjectAnimator.ofFloat(holder.swipeLayout, "translationX", 0f, 80f, 0f, -80f, 0f);
        animationLeft.setDuration(1500);
        animationLeft.start();
    }
}

希望这对某人有帮助!