AddView вызывает сбой Android - PullRequest
       0

AddView вызывает сбой Android

0 голосов
/ 09 января 2012

Вот код, который работает: в приведенном ниже коде все работает, но когда я пытаюсь добавить второе представление, оно вылетает.

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 Ответ

3 голосов
/ 09 января 2012

ScrollView и HorizontalScrollView должны содержать только одного дочернего элемента.
Обычно у вас будет LinearLayout в качестве единственного дочернего элемента HorizontalScrollView, и вы добавите к нему свои представления.

Из ScrollView-документации :

ScrollView - это FrameLayout, то есть вы должны поместить в него одного потомка, содержащего все содержимое для прокрутки;
[...]
Дочерний элемент, который часто используется, представляет собой LinearLayout в вертикальной ориентации, представляющий вертикальный массив элементов верхнего уровня, которые пользователь может прокручивать

Обратите внимание, что этоо ScrollView (не HorizontalScrollView (документ hsv говорит то же самое, но с горизонтальной, а не вертикальной), и, следовательно, упоминает вертикальную компоновку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...