如何解决Android Studio中的通用视图绑定
我正在为ListAdapter
和SelectionTracker<Long>
编写抽象类。就我而言,SelectionTracker
通过{p>通过selectionKey
s组织项目
interface TrackedListItem {
var selectionKey : Long?
}
现在,RecyclerView
中的项目(因此,ListAdapter
中存储的项目)需要绑定“ viewModel”(请注意,它不会扩展ViewModel
,我只是遵循Android Sunflower中概述的约定)。遵循相同的约定,我的ViewHolder
应该以{{1}}作为参数:
ViewBinding
我提前知道传递给abstract class TrackedItemViewHolder(val binding: ViewBinding) : RecyclerView.ViewHolder(binding.root)
的绑定具有可以绑定到的数据变量ViewHolder
,并且我知道该viewModel
实现了{{1} }。我该如何创建有效通过的通用布局(从而进行绑定):
viewModel
解决方法
对感兴趣的人来说,一种合理的解决方法是声明:
abstract class TrackedItemViewHolder(val binding: ViewBinding) :
RecyclerView.ViewHolder(binding.root){
abstract val viewModel : TrackedListItem
...
,然后在实现中:
override val viewModel : TrackedListItem
get() = (binding as bindingWithViewModel).viewModel!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。