Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android运行时在水平scoll视图中添加多个布局?_Android_Scrollview - Fatal编程技术网

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

如何在android运行时在水平scoll视图中添加多个布局?,android,scrollview,Android,Scrollview,我正在开发一个应用程序,在其中接收json数组中的json对象。每个json对象包含一个图像和两个字符串。现在我想在水平滚动视图中显示每个json对象的数据,也就是说,如果有10个json对象,那么我必须在水平滚动视图中显示10个布局(一个图像和两个文本视图) 我尝试的是,我创建了一个布局,其中有一个ImageView和两个TextView,并在视图对象中扩展该布局。现在在运行时,我将LinearLayout(水平)中的视图对象添加到json数组的长度中,该视图对象位于HorizontalScr

我正在开发一个应用程序,在其中接收json数组中的json对象。每个json对象包含一个图像和两个字符串。现在我想在
水平滚动视图中显示每个json对象的数据,也就是说,如果有10个json对象,那么我必须在
水平滚动视图中显示10个布局(一个图像和两个文本视图)

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

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

Linear layout ll_hori_scroll=(视图组)findviewbyd(R.id.ll_hori_scroll)//水平滚动视图中的布局
视图v=视图。充气(\u活动,R.layout.list\u项目\u最近添加\u主页,空)//自定义布局
对于(int i=0;i<2;i++){
ll_hori_scroll.addView(v);
}

及其在
ll_hori_scroll.addView(v)中的给定错误

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

像这样

<ScrollView
   <LinearLayout

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

   </LinearLayout>
</ScrollView>
添加视图必须添加“独立对象”,您只需将相同的“列表项最近添加到主页”添加到水平滚动两次

代码应如下所示:

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
}

Linear layout ll_hori_scroll=(视图组)findviewbyd(R.id.ll_hori_scroll)//水平滚动视图中的布局
对于(int i=0;i<2;i++){
//从外部移动到for循环线下方
视图v=视图。充气(\u活动,R.layout.list\u项目\u最近添加\u主页,空);
ll_hori_scroll.addView(v);
//如果以后要使用此视图,可以为视图添加标记
v、 setTag(i);//v.getTag()可以获取它们的位置
}

希望它能帮助你^^

这是我的滚动视图线性布局ll_hori_scroll=(视图组)findviewbyd(R.id.ll_hori_scroll)//水平滚动视图中的布局v=视图。充气(\u活动,R.layout.list\u项目\u最近添加的\u主页,空)//(inti=0;i<2;i++){ll_hori_scroll.addView(v);}的自定义布局您可以清楚地发布您的代码并记录有问题的cat。告诉我错误线在哪里。