久しぶりに使ったら軽くハマったので備忘録
このエラーに軽く悩んだ
Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.my_layout);
LinearLayout v = (LinearLayout)getActivity().getLayoutInflater().inflate(R.layout.custom_layout, null);
for (int i = 0; i < 10; i++) {
linearLayout.addView(v);
}
と書いていたのだがこれだと「v」が一回目のforの中で親のレイアウトの管理下になるため、
2回目の繰り返しでエラーになる。
なのでforの中でvを都度定義した。
LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.my_layout);
for (int i = 0; i < 10; i++) {
LinearLayout v = (LinearLayout)getActivity().getLayoutInflater().inflate(R.layout.custom_layout, null);
linearLayout.addView(v);
}
これで多分おk!