我有一个相对布局,并在我的水平滚动视图中以编程方式添加imageview,放在xml中。当我尝试在horizontalScrollView ..im中添加我的imageview时获得运行时异常.HorizontalScrollView只能托管一个孩子。你能不能伙计们帮帮我
RelativeLayout.LayoutParams HParams = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
HParams.topMargin = 200 * displayHeight / 480;
HsrollView.setLayoutParams(HParams);
for (int i = 0; i < 4; i++) {
ImageView btnTag = new ImageView(this);
btnTag.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
btnTag.setImageResource(R.drawable.book);
btnTag.setTag(i);
btnTag.setId(i);
HsrollView.addView(btnTag);
}
XML文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/directbg"
tools:context=".DirectorActivity" >
<HorizontalScrollView
android:id="@+id/Hscrollview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="none">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
答案 0 :(得分:7)
意思是,您必须将imageview添加到linearlayout。当您添加图像视图时,您将其添加到HorizontalScrollview
,其中还有一个LinearLayout
,通过向HorizontalScrollView添加2个子元素,您无法执行此操作
答案 1 :(得分:3)
您应该将按钮添加到LinearLayout
,而不是直接添加到HorizontalScrollView
。如错误所示,HorizontalScrollView
只能有一个孩子。
执行此操作的最佳方法是为您的LinearLayout
提供一个ID,并在代码中引用LinearLayout
而不是HorizontalScrollView
。
答案 2 :(得分:1)
错误告诉您所需的一切。 ScrollView
只能有一个孩子,在您的布局xml中,LinearLayout
内已有ScrollView
,因此您只需将图片添加到LinearLayout
而不是ScrollView
{{1}}。