android - 以编程方式在同一容器中多次添加 View

标签 android view

下面的循环如果运行一次 (n = 1) 就可以工作,但会在多次执行 (n > 1) 时崩溃。

IllegalStateException:指定的子项已经有一个父项。您必须首先对 child 的 parent 调用 removeView()。在“containerLL.addView(divider);”行

在此循环中还有其他使用“new”创建的 View ,但与手头的问题无关。

我不确定我是否需要制作一个“新的”RelativeLayout 每次或什么是修复它的正确方法。

谢谢

分隔符.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);
}

最佳答案

试试这个。

LinearLayout containerLL = (LinearLayout) activity.findViewById(mContainerViewId);
for(int i = 0; i<n ; i++){
    LayoutInflater li = LayoutInflater.from(activity);
    View divider = li.inflate(R.layout.divider, null, false);
    containerLL.addView(divider);
}

关于android - 以编程方式在同一容器中多次添加 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32751135/

相关文章:

java - 从Unity脚本调用Android NDK函数

sql - 加入父表和子表的最佳方式

android - 如何为 Android Imagebutton 设置 20% alpha 值?

java.lang.RuntimeException : Unable to start activity ComponentInfo Android Manifest 错误

android - 在 ActionBarSherlock 4 中实现选项卡的问题

android - Robolectric 3.3 与 Theme.AppCompat

android - Smart Lock 显示的帐户不是来 self 的应用

Android:检查 URL 是否有新的图像数据

eclipse - 从 Eclipse 菜单 Window -> Show View 中删除 View 名称

drupal - 如何在 Drupal 中创建具有三个细节层的时间线?