Android TextInputLayout提示在被RecyclerView回收时出现错误

92dk7w1h  于 2023-02-06  发布在  Android
关注(0)|答案(1)|浏览(140)
    • 使用案例**

我有一个RecyclerView,它的ViewHolder包含一个TextInputLayout。在某些情况下,我希望它显示一个hint,而在其他情况下,我不希望它显示。

    • 问题**

RecyclerView回收先前显示hint但在新bind上不需要hintViewHolder时,将显示空提示。请参见图片:
Image for NOT recycled ViewHolder
Image for recycled ViewHolder
这个问题似乎只有在新绑定没有hint的情况下才会发生。如果我用不同的值为每个ViewHolder设置一个hint,它会正确地回收和显示。

    • 片段**

Adapter.kt

override fun onBindViewHolder(holder: FormViewHolder, position: Int) {
    holder.onBind(getItem(position))
}

ViewHolder.kt

override fun onBind(model: Model) {
    binding.inputLayout.isHintEnabled = model.hasHint
    binding.inputLayout.isHintAnimationEnabled = model.hasHint
    binding.inputLayout.hint = model.hintValue
}

我试过:

  • 更新至最新版本ATM:com.google.android.material:material:1.8.0
vhmi4jdf

vhmi4jdf1#

我没有看到问题在你的代码,所以,当然这听起来像一个bug,但你可以尝试:
1.聚焦。
1.设置文本颜色。
1.在onBind viewholder方法中对文本输入布局调用invalidate()。
看看系统的React。

相关问题