2013-05-19 3 views
10

Ho un GridLayout (non GridView) in cui voglio aggiungere alcune viste con una riga e una colonna speciali inex. In XML è possibile impostare la vista con:Imposta layout_column e layout_row in GridLayout a livello di programmazione

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

Ma come posso impostare gli attributi layout_column e layout_row di programmazione? Voglio qualcosa di simile:

GridLayout grid = new GridLayout(getActivity()); 

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

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

risposta

14

L'equivalente di layout_column e layout_row, come con tutti i layout_... i parametri, si trova come un parametro di un sottoclasse di LayoutParams.

In questo caso è GridLayout.LayoutParams, e lo usiamo simili (per una griglia 2x2 con una visualizzazione secondaria nell'ultima riga e colonna, centrato all'interno della cellula):

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

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

E come dovrei spostare una vista per dire (0,0)? – Denny

+0

Immagino che tu non lo sappia neanche. – Denny

-2

Devi fare qualcosa di simile:

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

impostare la grandezza della griglia - non posiziona una sottoview al suo interno. –

Problemi correlati