All children of ConstraintLayout must have ids to use ConstraintSet

764 단어 Android
Constraint Set을 사용할 때 모든 Constraint Layout 내의 컨트롤은 반드시 ID가 있어야 한다. 기억해라. 모든 것이 동태적으로 Constraint Layout 서브View를 생성할 때 이 오류가 발생했다. 처음에 동적으로 추가된 View에 ID:view,setId를 설정했는지 아니면 이 오류를 보고했는지Constraint Set을 사용했다.clone(ConstraintLayout constraintLayout)
.
ConstraintSet을 엽니다.clone 소스
for(int i = 0; i < count; ++i) {
    View view = constraintLayout.getChildAt(i);
    LayoutParams param = (LayoutParams)view.getLayoutParams();
    int id = view.getId();
    if(id == -1) {
        throw new RuntimeException("All children of ConstraintLayout must have ids to use ConstraintSet");
     }
    //.....      
}

즉, 그는 모든 Constraint Layout의 하위 뷰를 반복해서 가져와 id가 있는지 아닌지를 판단한다.그래서layout 파일을 포함한 이 레이아웃의 모든 컨트롤을 id로 추가한 후에 성공했습니다.

좋은 웹페이지 즐겨찾기