2010-07-27 12 views
5

Sto costruendo TableLayout in modo dinamico. E ho bisogno che TableRow abbia un gap in certe posizioni di colonna.Android TableRow - Come aggiungere Visualizza dinamicamente in determinate posizioni?

Ad esempio, ho bisogno di una riga con ImageView su 3 e 5 posizioni, la riga successiva ha ImageView su 1, 2, 4 posizioni. Provo ad usare:

TableRow row1 = new TableRow(this); 
    row1.addView(new ImageView(this), 2); 
    row1.addView(new ImageView(this), 4); 
    mTable.addView(row1); 
    TableRow row2 = new TableRow(this); 
    row2.addView(new ImageView(this), 0); 
    row2.addView(new ImageView(this), 1); 
    row2.addView(new ImageView(this), 3); 
    mTable.addView(row2); 

ma ho ottenuto IndexOfBoundException in fase di esecuzione.
ERROR/AndroidRuntime (771): causato da: java.lang.IndexOutOfBoundsException: index = Conteggio 2 = 0

Tutti i suggerimenti sarebbero apprezzati.
Grazie.

risposta

4

In realtà, l'errore sembra abbastanza logico a prima vista sul codice. A meno che la tabella non venga creata da xml e come il numero richiesto di righe, quando si aggiunge una vista all'indice 2, questo indice non esiste. Prova a sostituire questo 2 con uno 0, vedrai che funziona. Quindi hai solo bisogno di aggiungere ImageView vuoto agli altri indici se vuoi attaccare ai tuoi.

+0

Serhy, grazie per la risposta. Ma, forse, sai come dovrei specificare la quantità di colonne in una riga? O quantità di righe e colonne in una tabella? Volevo solo usare addView (view, index) senza tale errore ... – levkatata

+0

Se ho capito bene, vuoi avere le immagini in una cella, quindi non nella successiva, quindi un'immagine, quindi no, ... e quindi nella riga successiva, il contrario, a partire da una cella vuota? – Sephy

+0

Sì, Serhy, hai ragione. Ma ci sono vari di questi layout che ho bisogno di creare, come un rombo, come una croce, come un segno di spunta e così via. Ho provato la soluzione, funziona benissimo! Ma ho notato che il tempo di creazione di tale layout è aumentato a seconda della quantità di visualizzazioni che creo. Devo creare molte viste vuote ... – levkatata

Problemi correlati