如何在android中运行时在水平scoll视图中添加多个布局?

时间:2013-07-01 10:00:36

标签: android scrollview

我正在开发一个app,我在json数组中接收json对象。每个json对象包含一个图像和两个字符串。现在我想在HorizontalScrollView中显示每个json对象的数据,即如果有10个json对象,那么我必须在HorizontalScrollView中显示10个布局(带有一个图像和两个textview)。

我尝试的是我使用一个ImageView和两个TextView创建了一个布局,并在视图对象中夸大了该布局。现在在运行时我在LinearLayout(水平)中添加了视图对象,它在HorizontalScrollView到json数组的长度但是它给了我一个错误

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);

中的错误

2 个答案:

答案 0 :(得分:1)

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

喜欢这个

<ScrollView
   <LinearLayout

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

   </LinearLayout>
</ScrollView>

答案 1 :(得分: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
}

希望它可以帮助你...... ^^