2013-06-05 16 views
6

Ich habe ein relatives Layout und Hinzufügen von Bildansicht programmatisch in meiner horizontalen scrollview, die in xml.when ich versucht, meine Bildansicht in horizontalScrollView ..im bekommen die Laufzeitausnahme .HorizontalScrollView kann Host nur eine einzige child.could Jungs ihr mir helfenHorizontalScrollView kann nur ein direktes Kind hosten

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

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

Antwort

7

Das bedeutet, Sie müssen die Bildansicht zum linearen Layout hinzufügen. Wenn Sie die Bildansicht hinzufügen, fügen Sie sie der HorizontalScrollview hinzu, die auch eine LinearLayout darin enthält, indem Sie 2 untergeordnete Elemente zur HorizontalScrollView hinzufügen, die Sie nicht tun können

1

Der Fehler sagt Ihnen alles, was Sie brauchen. A ScrollView kann nur ein Kind haben und in Ihrem Layout xml haben Sie bereits eine LinearLayout innerhalb der ScrollView, so dass Sie nur Ihre Bilder zu der LinearLayout anstelle der ScrollView hinzufügen müssen.

3

Sie sollten Ihre Tasten zu Ihrem LinearLayout hinzufügen, nicht direkt an die HorizontalScrollView. Wie der Fehler anzeigt, kann eine HorizontalScrollView nur ein Kind haben.

Der beste Weg, dies zu tun, wäre Ihre LinearLayout eine ID, zu geben und die LinearLayout im Code anstelle des HorizontalScrollView verweisen.

Verwandte Themen