我希望更新我的Recycler View,这样每当我从数据库中删除一行时,它就可以立即更新Recycler View而无需刷新片段。
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View?
{
var binding:FragmentDisplayBinding = DataBindingUtil.inflate(inflater,R.layout.fragment_display,container,false)
var view:View = binding.root
var new_task : FloatingActionButton = view.findViewById(R.id.add_newTask)
var db = Room.databaseBuilder(context!!,tasksDb:: class.java,"mydb").allowMainThreadQueries().build()
viewManager = LinearLayoutManager(context)
recyclerView = view.findViewById(R.id.recyclerView)
db.task().getAll().observe(this, Observer {
this.myAdapter = myAdapter(it)
recyclerView.adapter = myAdapter
recyclerView.layoutManager = viewManager
})
我认为我不应该在onCreateView()方法中使用.observe()。那么我需要在代码中做哪些改变?
DiffUtil
会很好。阅读有关DiffUtils的内容。简而言之,它计算列表中的差异并相应地更新。 - Taseer