Android Binding Adapter不适用于CustomView

Nit*_*sta 4 data-binding android android-custom-view kotlin

 <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" />
Run Code Online (Sandbox Code Playgroud)

这是我在xml中的自定义视图

以及将textAbove绑定到此视图的方法

@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))
}
Run Code Online (Sandbox Code Playgroud)

但是当我编译它时,我收到错误:错误:找不到属性'app:textAbove'.

Pha*_*inh 10

更改

app:textAbove="Nitin"
Run Code Online (Sandbox Code Playgroud)

app:textAbove='@{"Nitin"}'
Run Code Online (Sandbox Code Playgroud)

其他方式

// app:textAbove="@{@string/nitin}"  text from String resource
// app:textAbove="@{viewModel.nitin}" text from ViewModel
Run Code Online (Sandbox Code Playgroud)

  • 感谢您节省时间。 (2认同)