Насколько я понимаю, вы можете удалять элементы, но вам нужно добавить анимацию во время удаления; пожалуйста, посмотрите здесь
и будет публиковать здесь снова, если кто-то зайдет сюда
Это старо, но хотелось бы, чтобы это помогло кому-то еще, так как на него еще не ответили; Я сделал это, удалив по одному элементу за раз, имитируя анимацию смахивания этого элемента, и разместил задержку перед удалением следующего элемента и т. Д. Вплоть до последнего элемента RecyclerView
.
Шаг № 1:
В вашем упражнении, содержащем кнопку очистки всех и экземпляр 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());
}
Шаг № 2:
Создайте метод, который удалит все элементы списка 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);
}
Также важно обрабатывать изменения конфигурации в манифесте, разделе действий, так как если конфигурация изменяется при очистке списка представлений переработчика, возникает исключение
<activity
android:name=".activities.MainActivity"
android:configChanges="orientation|screenSize|keyboard"
android:label="@string/app_name"
...
</activity>