룬아님의 취중코딩

Databinding에서 다른 뷰의 visibility 상태를 가져오는 방법 본문

개발/안드로이드 개발

Databinding에서 다른 뷰의 visibility 상태를 가져오는 방법

룬아님 2020. 1. 23. 18:09
<RelativeLayout
        android:id="@+id/filter_container"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@color/colorWhite"
        android:clickable="true"
        android:focusable="true">

만약 위 뷰의 visibility를 가져와서 특정 뷰의 visibility를 정해주고 싶다면

<data>
    <import type="android.view.View"/>
    
    ...
    
</data>
android:visibility="@{filterContainer.getVisibility() == View.GONE ? View.GONE : View.VISIBLE}"

id를 스네이크 표기법으로 지정해도 databinding에서 해당 뷰를 사용할때에는 카멜 표기법으로 사용해야합니다.

 

하지만 뷰상태를 참조하게 되면 특정 상황에서 의도하지 않은 결과가 나올 수 있기 때문에 앱 안정성과 통일성을 위하여 데이터를 참조하도록 구현하는 것이 더 좋다.

반응형
Comments