Search code examples
androidandroid-layoutimageviewandroid-linearlayout

android visiblity - reserve space of image view


I want android:visibility to resolve in xml layout based on a boolean returned. like android:visibility="card.isPrimary() ? 1 : 0".

Android documentation says visible, invisible and gone are ints 0,1,2. My understanding is true/1 would resolve to invisible and false/0 to visible.

Layout:

 <LinearLayout>

    <ImageView
        android:visibility="@{ creditCard.isPrimary()}"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:src= "@drawable/creditcard" />

</LinearLayout>

Solution

  • Then, isPrimary() should return the corresponding visibility value

    @Visibility int isPrimary() {
        return primary ? View.VISIBLE : View.INVISIBLE;
    }