【发布时间】:2018-04-29 23:08:27
【问题描述】:
我已经在我的 recyclerView 中成功实现了滑动删除操作。
我使用 recyclerView 膨胀的列表是本地存储的,不在任何数据库中。
我试图做的是将元素保存到一个临时变量中,如果用户按下撤消按钮,我会恢复它。
这是我的代码:
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
val position = viewHolder.adapterPosition //get position which is swipe
if (direction == ItemTouchHelper.LEFT) { //if swipe left
val tmp = activeSubs[position] //temporary variable
activeSubs.removeAt(position)
adapter!!.removeItem(position)
val layout = find<View>(R.id.active_subs_recycler)
Snackbar.make(layout, "Subscription Deleted", Snackbar.LENGTH_LONG)
.setAction("Undo", { _ ->
activeSubs.add(position-1, tmp)
adapter!!.notifyDataSetChanged()
})
}
}
我的问题是 SnackBar 根本没有显示,但元素保存在临时变量中并从列表中删除。
我做错了什么?
附:我已经在 SO 上查看了其他答案,但他们建议使用对话框。不过我真的需要使用 Snackbar
【问题讨论】:
标签: android kotlin android-snackbar