我有以下模型视图的代码。
当我禁用saveViewState = true
或删除它时,checkbox?.isChecked
由环氧树脂适配器正确设置(根据isChecked
传递给注释方法的布尔值设置为真或假)。但是,当我启用它(设置saveViewState = true
)时,该checkbox?.isChecked
值始终设置为 false(至少在我在 UI 中看到的那样,所有复选框都未选中)。
前后放了log this.checkbox?.isChecked = isChecked
,看到传递的值是正确的,checkboxisChecked
属性设置正确。我不明白的是为什么环氧树脂会覆盖所有这些并将复选框设置为未选中状态(为假),尽管它的属性设置为例如选中状态。我试图requestModelBuild
在模型构建后立即对环氧树脂视图进行处理,并且有一些延迟,但这没有帮助。
@ModelView(saveViewState = true)
class RowView: ConstraintLayout {
constructor(context: Context):
super(context)
constructor(context: Context, attributeSet: AttributeSet):
super(context, attributeSet)
constructor(context: Context, attributeSet: AttributeSet, styleAttr: Int):
super(context, attributeSet, styleAttr)
@TextProp
fun setText(text: CharSequence) {
this.checkbox?.text = text
}
@ModelProp
fun setCheckedState(isChecked: Boolean) {
this.checkbox?.isChecked = isChecked
}
@CallbackProp
fun setOnChangeListener(listener: CompoundButton.OnCheckedChangeListener?) {
listener?.let { this.checkbox?.setOnCheckedChangeListener(it) }
}
}
启用视图状态后,如何在环氧树脂模型视图中设置复选框状态?使用 EditText 时是否也会出现此问题?以及为什么正确填充了复选框标签(没有空文本,传递的文本按原样显示)?