안드로이드 개발 질문/답변
(글 수 45,052)
동적 레이아웃을 만들어 해당 레이아웃에 동적으로 뷰를 추가 하려고 합니다.
레이아웃에 동일한 뷰를 2개 이상 추가 하려고 하니 아래와 같은 에러가 나네요 ㅜ
뷰를 새로 생성하지 않고 동일한 뷰를 또 추가해야 하는데 방법을 아신다면
감히 배우고자 합니다.
05-16 07:32:54.341: ERROR/AndroidRuntime(11478): Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
예제 )
LinearLayout layout = new LinearLayout(getContext());
TextView tv = new TextView(this);
tv.setText("A");
layout.addView(tv);
layout.addView(tv);
TextView를 하나더 만들면 될 것을 왜 이렇게 하냐고 하시는 분들이 계실까봐
말씀을 드리자면 제가 현재 스크롤뷰를 이용하여 여러가지 뷰를 슬라이드 하여
화면전환 하는것을 구현하고 있습니다. 구현하는 부분중에 동일한 뷰를 추가 해야 하는
경우가 생겨서 말씀을 드리는 것이며 위의 경우는 간단한 예를 표현한 것입니다.
감사합니다 ^^




ViewGroup 의 addViewInner() 를 보니,
if (child.getParent() != null) {
throw new IllegalStateException("The specified child already has a parent. " +
"You must call removeView() on the child's parent first.");
}