在viewModel中,我有一个如下的函数:
fun getTextInputStyle(): Int {
val style = if (isTrue) {
R.style.styleOne
} else {
R.style.styleTwo
}
return style
}
在XML文件中,有一个textInputLayout调用ViewModel中的函数:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_first_name"
style="@{viewModel.getTextInputStyle}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_13sdp"
android:layout_marginEnd="@dimen/_16sdp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/rg_title">
</com.google.android.material.textfield.TextInputLayout>
这里是控制台中记录的错误:
Cannot find a setter for
<com.google.android.material.textfield.TextInputLayout style>
that
accepts parameter type 'int'
If a binding adapter provides the setter, check that the adapter is
annotated correctly and that the parameter type matches.
1条答案
按热度按时间lxkprmvk1#
您可以使用绑定适配器像这样设置样式。
和XML格式
参考此链接:https://stackoverflow.com/a/64009888/20839582