끄적끄적
[Android] View Binding을 사용할 때 실수하기 쉬운 것! 본문
뷰 바인딩은 사용법은 널리 알려졌을 것이라 생각한다.
하지만, 생각을 잘 해보지 못했던 부분에 대해서 기록에 남겨보고자 한다.
JetPack Compose
가 정식으로 소개되었지만, 현재까지는 대부분 앱을 제작할 때 xml
을 통하여 제작을 하는 경우가 많을 것이라 생각된다.
그 중에서도, <include>
를 사용하여 레이아웃을 재사용 할 때는 어떻게 사용해야할지 잘 모르는 경우가 있었다.
ViewHolder
를 생성할 때 처럼, parent를 지정하여 bind 시켜주는 줄 알고
IncludeLayoutBinding.inflate(context, parent, false)
와 같은 방법으로 선언을 하고 사용을 하려고 하니까 컴파일
은 잘 되었지만, 올바르게 동작하지 않았다.
뷰 바인딩으로 생성된 코드 코드에서는 include
한 레이아웃은 다음과 같이 생성되었다.
public final class ActivityParentBinding implements ViewBinding {
@NonNull
public final IncludeLayoutBinding xmlId; // xml에서 지정해준 id
...
따라서 include한 레이아웃을 뷰 바인딩으로 사용하기 위해서는
<include>
에 id를 지정해줘야 한다.
재사용할 뷰 바인딩을 부모 바인딩에서 가져와야 한다.
두가지 조건을 만족해야한다.
틀린 부분이 있으면 댓글로 적어주면 감사하겠습니다.
'Android' 카테고리의 다른 글
[안드로이드] kapt (0) | 2021.09.06 |
---|
Comments