Насколько я понимаю, вы можете удалять элементы, но вам нужно добавить некую анимацию при удалении; пожалуйста, посмотрите здесь
и напишу здесь еще раз, если кто-нибудь зайдет сюда
Он старый, но желаю, чтобы это помогло кому-то другому, поскольку на него еще не ответили; Я сделал это, удаляя по одному элементу за раз, моделируя анимацию смахивания по этому элементу, и размещая задержку перед удалением следующего элемента, и так далее, вплоть до последнего элемента 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>
person
Zain
schedule
25.01.2019