问题描述
我的视口中具有以下功能-
private fun handlenormalMode(callback: (isTaskMarked: Boolean,model : TaskModel) -> Unit,model: TaskModel) {
binding.groupTaskDeleteTask.setAsGone() // sets view as GONE
binding.groupTaskRootLayout.setonClickListener {
when (isTaskDone) {
false -> {
binding.groupTaskTitle.paintFlags = Paint.STRIKE_THRU_TEXT_FLAG
binding.groupTaskTitle.setTextColor(context.getColor(R.color.grey_text))
binding.groupTaskImage.setAsGone() // sets view as GONE
binding.groupTaskDoneIndicator.setAsVisible()// sets view as VISIBLE
}
true -> {
binding.groupTaskTitle.paintFlags = 0
binding.groupTaskTitle.setTextColor(context.getColor(R.color.black))
binding.groupTaskDoneIndicator.setAsGone() // sets view as GONE
binding.groupTaskImage.setAsVisible() // sets view as VISIBLE
}
}
isTaskDone = !isTaskDone
callback(isTaskDone,model)
}
}
我正在使用回调函数来通知我的Fragment何时执行了单击,以便可以使用viewmodel将内容添加到我的数据库中。
问题是,触发回调时,隐藏和显示任何Viewholder视图的整个逻辑不再起作用。
片段中的回调实现-
// (part of adapter constructor)
{ isTaskMarked,taskModel ->
//Task marked callback
handleItemmarkedChange(isTaskMarked,taskModel)
})
private fun handleItemmarkedChange(taskMarked: Boolean,taskModel: TaskModel) {
val selfId = profileSharedPrefs.getString(Constants.USER_REGISTERED_ID,"")!!
taskviewmodel.setTaskMarked(taskModel,taskMarked,selfId = selfId)
}
// My viewmodel -
fun setTaskMarked(task: TaskModel,isMarked: Boolean,selfId: String) {
viewmodelScope.launch {
taskRepository.setTaskMarked(task.id,isMarked)
val action = if(isMarked) {
ActivityEntity.ActivityAction.TaskMarked
} else {
ActivityEntity.ActivityAction.TaskUnmarked
}
activitiesRepository.insertActivity(
ActivityEntity(
createdByUser = selfId,activityTitle = task.taskTitle,action = action,groupId = task.groupId))
}
}
如果我从VH中删除了回调,则一切正常,但是办公室并没有通知VM有关这些更改的信息,并且我也没有将必要的数据添加到数据库中。
我想念什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)