使用视图绑定 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