Я хотел добавить функцию ОТМЕНА после удаления элемента в приложении Notes. Я добавил снэк-бар в метод android ItemTouchHelper onSwiped, в котором удаляю отдельные заметки. Проблема, с которой я сталкиваюсь, заключается в том, что анимация слайдов Snackbar заставляет плавающую кнопку действия подпрыгивать вверх и вниз при запуске анимации. Мне кажется, эта проблема описана на форуме Github Github и Анимация , к сожалению, проблема не решена.
Моя активность_основная
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/coordinatorLayout">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/note_item" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/button_add_note"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:elevation="4dp"
android:layout_margin="32dp"
android:src="@drawable/ic_add" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
onSwiped
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
CoordinatorLayout coordinatorLayout = findViewById(R.id.coordinatorLayout);
Note deletedNote = adapter.getNoteAt(viewHolder.getAdapterPosition());
noteViewModel.delete(deletedNote);
Snackbar snackbar = Snackbar.make(coordinatorLayout, "Note deleted", Snackbar.LENGTH_LONG)
.setAction("UNDO", new View.OnClickListener() {
@Override
public void onClick(View v) {
noteViewModel.insert(deletedNote);
}
});
snackbar.show();
}
}).attachToRecyclerView(recyclerView);