gpt4 book ai didi

Android 通过单击按钮删除所有带有动画的 recyclerview

转载 作者:行者123 更新时间:2023-11-29 19:12:34 25 4
gpt4 key购买 nike

我有回收者观点。在单击按钮时,我想从 recyclerview 中删除所有项目,但必须使用动画删除这些项目。我可以一次删除所有项目,但我不知道如何使用动画删除它们。谢谢

最佳答案

它很旧,但希望这对其他人有帮助,因为它还没有得到回答;我通过在该项目上模拟滑动动画一次删除一个项目,并在删除下一个项目之前延迟,依此类推直到 RecyclerView 的最后一个项目。

第一步:

在您的 Activity 中,包含清除所有按钮和 RecyclerView实例:创建单项删除方法

private void deleteItem(View rowView, final int position) {

Animation anim = AnimationUtils.loadAnimation(requireContext(),
android.R.anim.slide_out_right);
anim.setDuration(300);
rowView.startAnimation(anim);

new Handler().postDelayed(new Runnable() {
public void run() {
if (myDataSource.size() == 0) {
addEmptyView(); // adding empty view instead of the RecyclerView
return;
}
myDataSource.remove(position); //Remove the current content from the array
myRVAdapter.notifyDataSetChanged(); //Refresh list
}

}, anim.getDuration());
}

第二步:

创建将删除所有RecyclerView 的方法列出项目 >> 在您的按钮点击回调中调用它。

boolean mStopHandler = false;

private void deleteAllItems() {

final Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {

if (myDataSource.size() == 0) {
mStopHandler = true;
}

if (!mStopHandler) {
View v = myRecyclerView.findViewHolderForAdapterPosition(0).itemView;
deleteItem(v, 0);
} else {
handler.removeCallbacksAndMessages(null);
}

handler.postDelayed(this, 250);
}
};
requireActivity().runOnUiThread(runnable);
}

处理 list 中的配置更改也很重要, Activity 部分,如果在清除回收器 View 列表时配置发生更改,则会引发异常

<activity
android:name=".activities.MainActivity"
android:configChanges="orientation|screenSize|keyboard"
android:label="@string/app_name">
...
</activity>

关于Android 通过单击按钮删除所有带有动画的 recyclerview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44779292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com