以下是有效的代码: 在下面的代码中一切正常,但是当我尝试添加第二个视图时,它会崩溃。
public void ClearAllV() {
ImageView IM2 = new ImageView(this);
HorizontalScrollView SW = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);
HorizontalScrollView.LayoutParams lp = new HorizontalScrollView.LayoutParams(
HorizontalScrollView.LayoutParams.WRAP_CONTENT,
HorizontalScrollView.LayoutParams.WRAP_CONTENT);
SW.removeAllViews();
IM2.setImageResource(R.drawable.have_fun);
SW.addView(IM2, lp);
}
但是,如果我尝试添加第二个图像视图,就像它崩溃一样,
public void ClearAllV() {
ImageView IM2 = new ImageView(this);
ImageView IM3 = new ImageView(this);
HorizontalScrollView SW = (HorizontalScrollView) findViewById(R.id.horizontalScrollView1);
HorizontalScrollView.LayoutParams lp = new HorizontalScrollView.LayoutParams(
HorizontalScrollView.LayoutParams.WRAP_CONTENT,
HorizontalScrollView.LayoutParams.WRAP_CONTENT);
SW.removeAllViews();
IM3.setImageResource(R.drawable.have_fun);
IM2.setImageResource(R.drawable.have_fun);
SW.addView(IM2, lp);
SW.addView(IM3, lp);
}
答案 0 :(得分:3)
ScrollView
和HorizontalScrollView
只能容纳一个孩子
通常,您会LinearLayout
作为HorizontalScrollView
的唯一子项,并添加您的观点。
ScrollView是一个FrameLayout,意味着你应该放置一个孩子 它包含要滚动的全部内容;
[...]
经常使用的子项是垂直方向的LinearLayout,呈现用户可以滚动的顶级项目的垂直数组
请注意,这是关于ScrollView(不是HorizontalScrollView(hsv doc说同样的东西,但是水平而不是垂直),因此提到了垂直布局。