2014-03-04 116 views
0

由於某些原因,我將添加到我的RelativeLayout中的滾動視圖中的LinearLayouts彼此重疊。 我認爲有一些方法可以設置LinearLayouts,以便將它們放置在上面的LinearLayout之下?線性佈局重疊

exampleLayout = (RelativeLayout)findViewById(R.id.examplelayout); 


     exampleButton = new TextView[exampleListCount]; 

     LinearLayout.LayoutParams rowsLayoutParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
     rowsLayoutParams.gravity = Gravity.CENTER; 
     rowsLayoutParams.setMargins(10, 10, 10, 0); 

     LinearLayout.LayoutParams exampleButtonParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     exampleButtonParams.setMargins(10, 10, 10, 0); 

     exampleRowLayoutArray = new LinearLayout[rowsNeededInt]; 

     int exampleAddedCount = 0; 
     for(int x = 0; x < rowsNeededInt; x++){ 
      exampleRowLayoutArray[x] = new LinearLayout(this); 
      exampleRowLayoutArray[x].setOrientation(LinearLayout.HORIZONTAL); 
      exampleRowLayoutArray[x].setLayoutParams(rowsLayoutParams); 

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

       if(exampleAddedCount < examplerListCount){ 

        String exampleNo = String.valueOf(exampleList.get(exampleAddedCount)); 

        exampleButton[exampleAddedCount] = new TextView(this); 
        exampleButton[exampleAddedCount].setId(exampleAddedCount+1); 
        exampleButton[exampleAddedCount].setGravity(Gravity.CENTER); 
        exampleButton[exampleAddedCount].setText(exampleNo); 
        exampleButton[exampleAddedCount].setLayoutParams(exampleButtonParams); 
        exampleButton[exampleAddedCount].setTextColor(getResources().getColor(android.R.color.white)); 
        exampleButton[exampleAddedCount].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 24); 
        exampleButton[exampleAddedCount].setBackgroundDrawable(new BitmapDrawable(getResources(), ButtonNormal)); 

        exampleRowLayoutArray[x].addView(exampleButton[exampleAddedCount]); 
        exampleAddedCount++; 
       } 

      } 


      exampleLayout.addView(exampleRowLayoutArray[x]); 

     } 

的Xml

<ScrollView 
     android:id="@+id/examplescrollview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:layout_below="@+id/topbar"> 

    <RelativeLayout 
     android:id="@+id/examplelayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center"> 
     </RelativeLayout> 

    </ScrollView> 
+0

如果您使用的是linearlayouts數組,爲什麼不使用ListView而不是相對佈局? –

回答

2

你似乎並不需要RelativeLayout的任何東西相對佈局屬性,所以最簡單的是與垂直LinearLayout來取代它。或者如果您需要滾動列表項目,請考慮ListView

RelativeLayout,你可以用下面的實現垂直LinearLayout同樣的效果:

  • 生成一個ID爲每個孩子

  • 創建RelativeLayout.LayoutParamsLAYOUT_BELOW規則引用以前的孩子。

  • 將佈局參數指定給孩子。

+0

我正在使用多個水平LinearLayouts作爲Android 2.3.3中不可用的GridLayout的替代品。我曾嘗試使用支持庫,但我一直無法使其工作。我在ScrollView中使用RelativeLayout,因爲ScrollView只能有一個直接的子元素。 – user1290717

+0

也有'GridView'。 – laalto

+0

我會看看GridView。但是必須有一些簡單的方法讓LinearLayouts相互顯示。 – user1290717