下面的循環如果運行一次(n = 1),但是爲多次執行分支(n> 1),則循環工作。以編程方式在同一個容器中多次添加視圖
IllegalStateException:指定的子項已經有父項。您必須先調用子對象的父對象的removeView()。在行「containerLL.addView(divider);」
在此循環中還使用「新」創建了其他視圖,但與當前問題無關。
我不確定是否需要每次都創建一個「新」RelativeLayout 或者修復它的正確方法是什麼。
謝謝
divider.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/divider_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/plan_divider"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="?android:attr/listDivider" />
LinearLayout containerLL = (LinearLayout) activity.findViewById(mContainerViewId);
for(int i = 0; i<n ; i++){
LayoutInflater li = LayoutInflater.from(activity);
RelativeLayout rl = (RelativeLayout) activity.findViewById(R.id.divider_parent);
View divider = li.inflate(R.layout.divider, rl);
containerLL.addView(divider);
}