관리 메뉴

나만을 위한 블로그

[Android] All children of ConstraintLayout must have ids to use ConstraintSet 에러 해결 본문

Android

[Android] All children of ConstraintLayout must have ids to use ConstraintSet 에러 해결

참깨빵위에참깨빵 2021. 5. 30. 12:50
728x90
반응형

ConstraintLayout을 사용한 UI를 자바 코드로 건드릴 때 사용하는 요소가 ConstraintSet이다.

비로그인 상태와 로그인 상태에서 보여줄 UI를 각각 다르게 하기 위해 이걸 사용하고 있었는데, 앱을 실행하니 특정 화면에 들어가자마자 저 에러가 나오면서 앱이 죽었다. 내가 ConstraintSet을 사용한 화면이었다.

 

해결 방법은 간단하다. 내가 체인을 변경하려는 레이아웃 안의 모든 뷰, 위젯에 id가 입력됐는지 확인하고 없으면 추가하면 끝이다.

내 경우 아래와 같은 코드를 썼다.

constraintSet.connect(R.id.bottom_layout,
                    ConstraintSet.TOP,
                    R.id.menu_container,
                    ConstraintSet.BOTTOM,
                    0);
constraintSet.applyTo(constraintLayout);

위에서 말한 대로 connect()의 1번 인자로 들어간 레이아웃 안의 모든 뷰, 위젯에 id를 입력해주면 된다.

반응형
Comments