2013-05-19 19 views
10

Mam GridLayout (nie GridView), gdzie chcę dodać niektóre widoki ze specjalnym wierszu i kolumny inex. W XML można ustawić widok z:Ustaw kolumn_kolumn i layout_row w GridLayout programowo

<TextView 
    android:id="@+id/textView1" 
    android:layout_column="2" 
    android:layout_row="4" 
    android:text="Large Text" /> 

Ale jak mogę ustawić atrybuty layout_column i layout_row programowo? Chcę coś takiego:

GridLayout grid = new GridLayout(getActivity()); 

grid.setColumn(2); 
grid.setRow(4); 

grid.addView(new Button(getActivity()); 

Odpowiedz

14

Równowartość layout_column i layout_row, jak w przypadku wszystkich parametrów layout_..., można znaleźć jako parametrem podklasa LayoutParams.

W tym przypadku jest to GridLayout.LayoutParams, i wykorzystać go tak (na siatce 2x2 z podrzędny w końcowym rzędu i kolumny, wyśrodkowany w komórce):

gridLayout.setColumnCount(2); 
gridLayout.setRowCount(2); 

gridLayout.addView(subview, new GridLayout.LayoutParams(
           GridLayout.spec(1, GridLayout.CENTER), 
           GridLayout.spec(1, GridLayout.CENTER))); 
+0

A jak przesunąć widok, aby na przykład powiedzieć (0,0)? – Denny

+0

Chyba też nie wiesz. – Denny

-2

Musisz zrobić coś takiego:

GridLayout gridLayout = new GridLayout(this); 
gridLayout.setColumnCount(2); 
gridLayout.setRowCount(4); 
+1

ten ustawia rozmiar siatki - nie umieszcza w tym widoku podrzędnym. –