Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ProGuard
- GitHub
- activity
- Coroutines
- TEST
- Codeforces
- relay
- 암호학
- architecture
- boj
- Rxjava
- 백준
- 코루틴
- 쿠링
- MiTweet
- Kotlin
- AWS
- pandas
- MyVoca
- Python
- 코드포스
- Compose
- textfield
- android
- 프로그래머스
- Coroutine
- androidStudio
- livedata
- Hilt
- Gradle
Archives
- Today
- Total
이동식 저장소
ViewBinding 사용 시 레이아웃 크기가 wrap_content로 고정되는 문제 본문
아이디만으로 쉽게 뷰에 접근할 수 있었던 ``Kotlin Android Extensions``는 ``RecyclerView``에서 사용할 때 매우 비효율적이며, 그 밖에도 코드 작성 시 여러 가지 문제점이 있어 최근에는 ``ViewBinding`` 사용을 권장하고 있다.
참고: Android Studio 4.1에서 제거된 Kotlin Android Extensions을 알아보자. (thdev.tech)
그런데 ``ViewBinding``을 사용하면 레이아웃이 약간 틀어지는 문제가 있다. 대표적으로 ``layout_width`` 혹은 ``layout_height``가 ``wrap_content``로 고정되는 문제. 분명히 ``match_parent``로 설정했음에도 불구하고 Layout Inspector로 보면 ``wrap_content``로 설정되어 있다.
Inflate하는 코드를 다음과 같이 수정하면 문제를 해결할 수 있다. 정확히 어떤 매커니즘으로 문제가 생기는지는 잘 모르겠다.
# 이 코드를
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
ViewHolder(ViewBinding.inflate(LayoutInflater.from(parent.context)))
# 이렇게 수정
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
ViewHolder(ViewBinding.inflate(LayoutInflater.from(parent.context), parent, false))
'Primary > Android' 카테고리의 다른 글
[Android Kotlin Fundamentals] Navigation path (0) | 2021.02.02 |
---|---|
Inflate()에서 매개변수 attachToParent의 의미 (1) | 2020.12.22 |
ViewBinding을 사용할 때 layout_margin이 적용되지 않는 오류 (0) | 2020.12.13 |
Android Studio에서 머티리얼 아이콘 쉽게 사용하기 (0) | 2020.08.27 |
Expected BEGIN_ARRAY but was STRING at line 1 column 1 path (0) | 2020.02.08 |
Comments