일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Stomp user connection event
- Android apple login 인증서 설정
- no such module '__ObjC'
- Stomp socket connection event
- Firebase authentication apple login 최신
- DT_TOOLCHAIN_DIR cannot be used
- 소개팅앱 만들기
- Firebase authentication android apple login
- Android apple login
- 소개팅앱 만들기 stomp
- stable-diffusion-webui local 네트워크에서 접속
- stable-diffusion-webui local 접속
- 로컬 서버 접속
- supabase edge function deploy error
- Spring LocalDateTime response array
- Supabase edge function insert data
- Supabase edge function
- 소개팅앱 만들기 flutter
- supabase storage public url not working
- Firebase authentication apple login
- invite user for supabase project
- supabase storage feature not enabled for this tenant
- Spring boot swagger blank screen
- Android apple login identifier
- 주 4일 근무제 경험담
- supabase edge function deploy error supabaseurl is required
- 주 4일 근무제
- Firebase authentication android apple login setting
- 주 4일 근무제 log
- Spring google SMTP settings
- Today
- Total
꿀맛코딩
How to set default value of android databinding (안드로이드 데이터 바인딩 기본 값 설정 하는 방법 본문
How to set default value of android databinding (안드로이드 데이터 바인딩 기본 값 설정 하는 방법
soycrab 2021. 6. 30. 13:27안드로이드 데이터 바인딩을 사용하다 보면
라이브 데이터를 세팅하기 전까지
xml에 라이브 데이터를 바라보는
뷰가 감춰져야 하거나
특정 디폴트 상태를 유지해야 할 때 난감할 때가 있습니다.
만약 이를 막고자 라이브 데이터에
디폴트 값을 미리 넣어두면
옵저빙 시 호출이 되기 때문에
디폴트 값을 넣어주기도 애매하죠
아래 코드를 예시로 보겠습니다.
<View android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="@{vm.isShow() ? View.VISIBLE : View.GONE}"/>
만약 ViewModel의 isShow 데이터를 바라보고
Visible과 Gone을 처리하는 뷰가 있다고 하면
이 뷰는 isShow의 데이터가 변경되기 전까지 화면에 보이고 있을 것입니다.
API를 통신하여 세팅한다고 하면
API의 통신 속도에 따라 나타나고 사라지는 게 눈에 보일 정도가 될 것입니다.
이럴 경우 크게 눈에 띄지 않는 뷰면 상관이 없는데
전체적으로 화면을 덮는 다던가 크게 화면을 차지하는 뷰라면 이야기는 달라집니다.
따라서 이를 막고자 Databinding시 뷰에 디폴트 값을 넣어줄 수 있습니다.
아래 예시 코드를 확인해 보겠습니다.
<View android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="@{vm.isShow() ? View.VISIBLE : View.GONE , default=gone}"/>
디폴트 값을 지정하는 핵심 코드는 아래 빨간색 코드입니다.
android:visibility="@{vm.isShow() ? View.VISIBLE : View.GONE , default=gone}"
위처럼 디폴트 값을 지정하면
데이터 바인딩 시점에 라이브 데이터에 값이 없거나 변경되지 않아도
뷰의 기본 상태 값을 지정할 수 있습니다.
visibility 는 위와 같이 디폴트 값을 지정할 수 있고
다른 예로
TextView 같은 경우는
default=`테스트 문구입니다.`
이런 식으로도 디폴트 값 지정이 가능합니다.
모두 즐거운 코딩 하세요