In android data binding, we can use conditional operators to decide what value to be assigned to a particular attribute. The attribute can visibility, background, text etc. so that you can select the value based on your condition only in the layout and don’t have to worry about that in the code.
The conditional operators can be used as
1 |
android:visibility="@{user.review > 0f ? View.VISIBLE : View.INVISIBLE}" |
1 |
android:visibility="@{product.price.equals("0") ? View.INVISIBLE : View.VISIBLE}" |
1 |
android:background="@{user.isDeleted ? @color/red : @color/blue}" |
You can also use Null Coalescing Operator. In this if the first value is null the view shows the next value. Forexample I have a view to show the name of a user and I have two variables as Name and LastName. So in case there is null value in Name I want the view to show LastName, then we can simply state this as:
1 |
android:text="@{user.Name ?? user.LastName}" |
These are only few of the mentions, there is large list of operations you can do in your xml layout with data binding that reduces conditional code in your activity/fragment. You can found more information about these over here.