AddView导致崩溃android

时间:2012-01-08 20:16:57

标签: android imageview

以下是有效的代码: 在下面的代码中一切正常,但是当我尝试添加第二个视图时,它会崩溃。

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


}

1 个答案:

答案 0 :(得分:3)

ScrollViewHorizontalScrollView只能容纳一个孩子 通常,您会LinearLayout作为HorizontalScrollView的唯一子项,并添加您的观点。

来自ScrollView-documentation

  

ScrollView是一个FrameLayout,意味着你应该放置一个孩子   它包含要滚动的全部内容;
  [...]
  经常使用的子项是垂直方向的LinearLayout,呈现用户可以滚动的顶级项目的垂直数组

请注意,这是关于ScrollView(不是Horizo​​ntalScrollView(hsv doc说同样的东西,但是水平而不是垂直),因此提到了垂直布局。

相关问题