2013-06-05 8 views
6

Mam względny układ i dodawanie obrazu programowo w moim poziomy przewijania, który jest umieszczony w xml.when próbowałem dodać mój widok obrazu w horizontalScrollView ..im uzyskanie wyjątku środowiska wykonawczego.HorizontalScrollView może host tylko jeden child.could wy mnieHorizontalScrollView może obsługiwać tylko jedno bezpośrednie dziecko

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 plik

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

Odpowiedz

7

To znaczy, że musisz dodać widok obrazu do linelayoutu. po dodaniu widoku obrazu dodajemy go do HorizontalScrollview, który ma również LinearLayout w nim przez dodanie 2 elementów podrzędnych do HorizontalScrollView, których nie można wykonać

1

błąd powie Ci wszystko, czego potrzeba pomocy. A ScrollView może mieć tylko jedno dziecko, a w twoim układzie xml masz już LinearLayout wewnątrz ScrollView, więc wystarczy dodać swoje zdjęcia do LinearLayout zamiast ScrollView.

3

Powinieneś dodawać swoje przyciski do swojego LinearLayout, a nie bezpośrednio do HorizontalScrollView. Jak wskazuje błąd, HorizontalScrollView może mieć tylko jedno dziecko.

Najlepszym sposobem, aby to zrobić, jest podanie identyfikatora LinearLayout i odniesienie do LinearLayout w kodzie zamiast do HorizontalScrollView.

Powiązane problemy