2013-06-05 80 views
6

我得到了一個相對的佈局,並在我的水平scrollview編程方式添加imageview放置在xml.when我試圖添加我的imageview在horizo​​ntalScrollView ..im獲取運行時異常.Horizo​​ntalScrollView可以主機只有一個child.could你們幫我出Horizo​​ntalScrollView可以只託管一個直接孩子

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

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

回答

7

含義,您必須將imageview添加到linearlayout。當您添加圖像視圖時,您將其添加到HorizontalScrollview,其中還有一個LinearLayout其中通過將2個子元素添加到Horizo​​ntalScrollView,您不能這樣做

1

錯誤告訴你,你需要的一切。 A ScrollView只能有一個孩子,並且在您的佈局xml中,ScrollView內部已有LinearLayout,因此您只需將圖像添加到LinearLayout而不是ScrollView

3

您應該將您的按鈕添加到您的LinearLayout,而不是直接添加到HorizontalScrollView。如錯誤所示,HorizontalScrollView只能有一個孩子。

要做到這一點,最好的方法是給你的LinearLayout一個ID,並在你的代碼中引用LinearLayout而不是HorizontalScrollView

相關問題