我正在开发一个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);
答案 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
}
希望它可以帮助你...... ^^