Consider the following code:
binding adapter:
@BindingAdapter("visibility")
fun setVisibility(view: View, shouldBeVisible: Boolean) {
view.visibility = if (shouldBeVisible) View.VISIBLE else View.GONE
}
what's the difference between using bind namespace like this:
<TextView
android:id="@+id/text_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
bind:visibility="@{mainViewModel.showTextView}"/>
and using app namespace like this:
<TextView
android:id="@+id/text_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:visibility="@{mainViewModel.showTextView}"/>
they both work in my code.