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를 입력해주면 된다.
반응형