0

我正在开发一个应用程序,我在其中接收 json 数组中的 json 对象。每个 json 对象包含一个图像和两个字符串。现在我想在HorizontalScrollViewie 中显示每个 json 对象的数据,如果有 10 个 json 对象,那么我必须在HorizontalScrollView.

我尝试的是,我创建了一个带有 1ImageView和 2的布局,TextView并在视图对象中扩展了该布局。现在在运行时,我在LinearLayout(水平)中添加了该视图对象,该对象位于HorizontalScrollViewjson 数组的长度中,但它给了我一个错误

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

谁能告诉我解决方案。

这是我的代码

Linear layout ll_hori_scroll = (ViewGroup)findViewById(R.id.ll_hori_scroll);//layout in horizontal scroll view 
View v = View.inflate(_activity, R.layout.list_item_recentlyadd_home, null);//custom layout 
for (int i = 0; i < 2; i++) { 
ll_hori_scroll.addView(v); 
}

及其给出的错误ll_hori_scroll.addView(v);

4

2 回答 2

1

Scrollview 将只允许一个孩子,因此您必须将子布局添加到 ScrollView 的孩子。

像这样

<ScrollView
   <LinearLayout

      /// you can add layout's here at dynamic

   </LinearLayout>
</ScrollView>
于 2013-07-01T10:03:22.373 回答
0

addView 必须添加“独立对象”,您只需将相同的“list_item_recentlyadd_home”添加到 ll_hori_scroll 两次...

代码应如下:

Linear layout ll_hori_scroll = (ViewGroup)findViewById(R.id.ll_hori_scroll);//layout in horizontal scroll view 

for (int i = 0; i < 2; i++) {
    //move below line from outside into for loop
    View v = View.inflate(_activity, R.layout.list_item_recentlyadd_home, null);
    ll_hori_scroll.addView(v); 

    //if you wants to use this view later, you can add the tag for your view
    v.setTag(i);  // v.getTag() can get their position
}

希望对你有帮助...^^

于 2013-08-27T11:32:37.350 回答