2012-01-08 6 views
0

다음 코드는 작동합니다. 아래의 코드는 모두 작동하지만 두 번째보기를 추가하려고하면 충돌이 발생합니다.AddView 원인 크래시 android

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

충돌 로그 게시 – nandeesh

답변

3
ScrollView

HorizontalScrollView는 하나의 아이를 유지해야한다, 그것은 충돌 아래와 같이 두 번째 이미지 뷰를 추가하려고합니다.
일반적으로 HorizontalScrollView의 유일한 자녀는 LinearLayout이며보기를 추가하십시오. ScrollView-documentation에서

:

있는 ScrollView는 스크롤 전체 내용을 포함 에 하나의 아이를 배치해야합니다 의미하는 FrameLayout이있다;
[...] 자주 사용되는 아이 사용자 이것은 관한 것이라고

참고 스크롤 할 수 최상위 아이템의 수직 배열을 제시하는 세로 방향에서의 LinearLayout이고,
ScrollView (HorizontalScrollView가 아닙니다. hsv doc은 똑같은 것을 말하지만 수직이 아니라 가로를 사용합니다.)

+0

이제는 작동합니다. – Hello