У меня следующий код для просмотра модели.
Когда я отключаю saveViewState = true
или удаляю его, эпоксидный адаптер правильно устанавливает checkbox?.isChecked
(в true или false, в соответствии с логическим значением isChecked
, которое передается аннотированному методу). Но когда я включаю его (установите saveViewState = true
), значение checkbox?.isChecked
всегда устанавливается в false (по крайней мере, как я вижу в пользовательском интерфейсе, все флажки сняты).
Я поместил журналы до this.checkbox?.isChecked = isChecked
и после, и я увидел, что переданное значение является правильным, и свойство isChecked
флажка установлено правильно. Что я не понимаю, так это то, почему эпоксидная система переопределяет все это и устанавливает флажок в непроверенное состояние (в false), несмотря на то, что его свойство установлено, например, в проверенное состояние.
Я пытался сделать 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? И почему метка флажка заполнена правильно (пустой текст, переданный текст отображается в порядке)?