-
Notifications
You must be signed in to change notification settings - Fork 333
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ViewBinding支持复用 #286
Comments
文档和demo不是都有使用示例吗? |
ViewBinding只是取代findViewById的一个小工具而已, 和DataBinding不是同类型框架(DataBinding包含ViewBinding的功能) DataBinding是双向数据绑定工具 我不明白你说 |
根据官方的 简言之,
|
关于你说的ViewHolder直接持有binding类(就像databinding使用getBinding()一样)我认为可以考虑 但是为什么我一直没有实现这是因为我认为并没有简化多少代码量并且ViewBinding本身不适合封装 val binding = getBinding<ItemViewBinding>()
val binding = ItemViewBinding.bind(itemView) 但是@DylanCaiCoding提过在onBind中反复调用 但是现在我认为让ViewBinding和DataBinding用法趋同可能更好, 并且减少学习成本, 关于这点提议我觉得可以改进下, 也欢迎你Pr |
使用getBinding()获取ViewBinding实例, 这是不是你想要的效果 binding.rv.linear().setup {
addType<SimpleModel>(R.layout.item_simple)
onBind {
val binding = getBinding<ItemSimpleBinding>() // getBinding()现在同时支持`DataBinding/ViewBinding`
binding.tvSimple.text = layoutPosition.toString()
}
}.models = getData() 升级最新版本 |
关于第一点,我看官方的文档是在onCreateViewHolder,并不是在onBindViewHolder中进行findViewById,文档在这里 |
关于 @jin123d 说的第一点, 那无法封装实现的(因为ViewBinding需要指定具体类), 而且也没有必要, 我认为你没有理解官方写的目的 官方示例是为了避免频繁触发 即使每次在onBindViewHolder里面findViewById对性能影响也比较轻微, 例如比较有名气的BRVAH完全没有缓存每次都会去findViewById 如果你有更好的解决办法欢迎提出 |
我同意你的第二点的解决方法,只是对 |
@jin123d 欢迎共同探讨实现方案 |
问题描述
addType(R.layout.item_simple) 不支持viewBinding
期望行为
期望支持view Binding ,不习惯使用databinding
如何复现
截图
异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)
版本
The text was updated successfully, but these errors were encountered: