2012-09-06 221 views
1

您好我得到了與RelativeLayout的一個問題。這個想法是在屏幕頂部的XML代碼中定義一個標題欄,然後在左邊的這個欄下面添加一個textview元素,但是當我在java代碼中添加這個TextView時,它始終顯示在屏幕的左上角顯示器(意味着它被設置在標題欄上)。任何人都知道我在做什麼錯了?Android的動態設置元素的RelativeLayout

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 


<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/main"> 

    <Button 
     android:id="@+id/title" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     /> 
    </RelativeLayout> 
</ScrollView> 



     RelativeLayout rl = (RelativeLayout) this.findViewById(R.id.main); 

     for (int i=0; i<=5; i++) { 

     TextView tv = new TextView(this); 

     tv.setId(i); 

     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

     if (i == 0) 
      params.addRule(RelativeLayout.BELOW, R.id.title); 
     else 
      params.addRule(RelativeLayout.BELOW, i-1); 

     rl.addView(tv, params); 
    } 
+0

已解決!!!! puuuhhhh ......經過長期的鬥爭,我終於贏了),如果有人有興趣的解決方案:RelativeLayout.LayoutParams P =新RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);這是一個正確的定義和for循環必須開始與I = 2(爲我工作,不知道爲什麼!!;)) – wasp256

回答

0

我想你也必須在textview中添加一個ID,即使你不必引用它。您也可以在一次調用中添加查看和設置參數:

tv.setId(123); 
params.addRule(RelativeLayout.BELOW, R.id.title); 
rl.addView(tv, params); 
+0

謝謝你的工作,但只爲一個單一的元素。我嘗試添加TextViews在一個for循環,現在又那麼第一個元素獲取左上角再次加入的元素都有ID: – wasp256

+0

我更新的代碼,我想知道爲什麼插入其中一個for循環不即使TextViews有工作一個ID? – wasp256

相關問題