<com.myapp.view.widgets.TextImageTextView
android:id="@+id/tv_on_boarding_step_one"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="1"
app:layout_constraintBottom_toTopOf="@+id/appCompatButton"
app:layout_constraintEnd_toStartOf="@+id/space_one_two"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/label_description"
app:textAbove="Nitin" />
这是我在 xml 中的自定义 View
以及将 textAbove 绑定(bind)到此 View 的方法
@BindingAdapter("app:textAbove")
fun setTextAbove(view: TextImageTextView, textAbove: Int) {
// this is the method I have in my custom view
view.setTextAbove(view.context.getString(textAbove))
}
但是当我编译这个时,我得到了 错误:错误:找不到属性“app:textAbove”。
最佳答案
改变
app:textAbove="Nitin"
到
app:textAbove='@{"Nitin"}'
另一种方式
// app:textAbove="@{@string/nitin}" text from String resource
// app:textAbove="@{viewModel.nitin}" text from ViewModel
关于Android 绑定(bind)适配器不适用于 CustomView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47449825/