使用视图绑定 Kotlin 在 On Create View Holder 中设置布局参数
Set Layout Params in On Create View Holder with view binding Kotlin
我总是使用视图绑定,甚至在回收器视图适配器中使用项目视图绑定,但这次我希望视图持有者也用一些边距填充 70% 的屏幕,这种旧方法代码似乎没有视图绑定:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val view = LayoutInflater.from(context).inflate(R.layout.item_task, parent, false)
val layoutParams = LinearLayout.LayoutParams((parent.width * 0.7).toInt(), LinearLayout.LayoutParams.WRAP_CONTENT)
layoutParams.setMargins((15.toDp()).toPx(), 0, (40.toDp()).toPx(), 0)
view.layoutParams = layoutParams
return MyViewHolder(view)
}
而 MyViewHolder 是内部 class 而 returns 是视图持有者
但是如果我想使用视图绑定,它将是这样的:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return ViewHolder(ITEM_BINDING.inflate(LayoutInflater.from(parent.context), parent, false))
}
但是在最后一种情况下我无法设置布局参数,它似乎没有像setLayout Params这样的功能,有什么方法可以通过视图绑定设置布局参数,甚至只是设置边距和填充70 % 宽度百分比?
使用ViewBinding.root
得到view
val viewBinding = ITEM_BINDING.inflate(LayoutInflater.from(parent.context), parent, false)
val layoutParams = LinearLayout.LayoutParams((parent.width * 0.7).toInt(), LinearLayout.LayoutParams.WRAP_CONTENT)
layoutParams.setMargins((15.toDp()).toPx(), 0, (40.toDp()).toPx(), 0)
viewBinding.root.layoutParams = layoutParams
我总是使用视图绑定,甚至在回收器视图适配器中使用项目视图绑定,但这次我希望视图持有者也用一些边距填充 70% 的屏幕,这种旧方法代码似乎没有视图绑定:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
val view = LayoutInflater.from(context).inflate(R.layout.item_task, parent, false)
val layoutParams = LinearLayout.LayoutParams((parent.width * 0.7).toInt(), LinearLayout.LayoutParams.WRAP_CONTENT)
layoutParams.setMargins((15.toDp()).toPx(), 0, (40.toDp()).toPx(), 0)
view.layoutParams = layoutParams
return MyViewHolder(view)
}
而 MyViewHolder 是内部 class 而 returns 是视图持有者
但是如果我想使用视图绑定,它将是这样的:
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
return ViewHolder(ITEM_BINDING.inflate(LayoutInflater.from(parent.context), parent, false))
}
但是在最后一种情况下我无法设置布局参数,它似乎没有像setLayout Params这样的功能,有什么方法可以通过视图绑定设置布局参数,甚至只是设置边距和填充70 % 宽度百分比?
使用ViewBinding.root
得到view
val viewBinding = ITEM_BINDING.inflate(LayoutInflater.from(parent.context), parent, false)
val layoutParams = LinearLayout.LayoutParams((parent.width * 0.7).toInt(), LinearLayout.LayoutParams.WRAP_CONTENT)
layoutParams.setMargins((15.toDp()).toPx(), 0, (40.toDp()).toPx(), 0)
viewBinding.root.layoutParams = layoutParams