9

Sto cercando di creare una tabella/griglia per alcuni elementi all'interno della mia app e vorrei avere un bordo attorno a ogni cella per dividere gli elementi e avere un'associazione coerente dell'impostazione con l'elemento. Questa app verrà utilizzata in un ambiente industriale in cui potrebbero esserci persone che non hanno familiarità con Android che devono utilizzarlo, cercando in tal modo di renderlo il più semplice possibile.Righe di confine per le celle in GridLayout, TableLayout o GridView?

La tabella/griglia conterrà TextView, EditText, Spinner e Button, e sarà anche scorrevole (via ScrollView genitore).

Ho letto a proposito del numero GridView e ho scoperto che (sembra) solo essere in grado di ottenere elementi a livello di codice, correggimi se ho torto. Sentivo che non era necessario visto che so quali articoli voglio e dove. Inoltre, non ho ancora provato ad aggiungere elementi a un layout in modo programmatico, quindi ho pensato di provare prima le altre opzioni. Inoltre, lo GridView documentation non dice in un modo o nell'altro se vengono visualizzate automaticamente le linee di bordo o se è possibile visualizzarle.

Ho iniziato con un TableLayout ed è stato in grado di ottenere tutto tranne le linee di confine per funzionare. Ho provato android:divider per ottenere le linee ma non ha funzionato. Un pensiero che ho avuto è stato quello di creare un gruppo di TextView s con sfondi neri e ~ 2dp larghezze/altezze per creare le mie linee di confine. Questo sembra un enorme spreco però. Poi ho letto anche lo TableLayout documentation e ho trovato questo: "I contenitori di TableLayout non mostrano righe di confine per le loro righe, colonne o celle."

Ho quindi provato il GridLayout e ho avuto gli stessi risultati del TableLayout. Ho provato padding e margins, nessuno dei due ha funzionato. Inoltre, gli stati GridLayout documentation: "La griglia è composta da un insieme di linee infinitamente sottili che separano l'area di visualizzazione in celle."

Le mie domande sono:

  1. C'è un attirbute che ho perso in TableLayout o GridLayout che mi darà le linee di confine attraverso l'XML?

  2. Se no, allora il GridView mi darà le linee che voglio?

  3. Sarò in grado di aggiungere tutti gli articoli sopra menzionati che voglio allo GridView?

risposta

5

C'è un attirbute che ho perso in TableLayout o GridLayout che mi darà le linee di confine attraverso l'XML?

No.

Se no, allora il GridView darmi le linee che voglio?

No.

Sarò in grado di aggiungere tutti gli elementi menzionati perviously voglio GridView?

Sì, anche se come funziona qualcosa come un Spinner, non posso dire.

Il modo più semplice, in cima alla mia testa, per darti le linee che cerchi è di avere ciascuna cella dello TableLayout o GridLayout un contenitore contenente i widget per quella cella, dove si consegna il contenitore uno sfondo che è la tua linea. A ShapeDrawable potrebbe essere definito in XML per quello sfondo, che sarà ben ridimensionabile in base ai requisiti effettivi della cella.

+0

Guarderò in 'GridLayout' combinato con lo sfondo/ShapeDrawable che hai citato come soluzione. Grazie per l'info! – TronicZomB

8

ero effettivamente in grado di ottenere l'aspetto desiderato impostando il android:background="#000000" all'interno della vista GridLayout e poi negli elementi figlio ho impostato il android:background="#8CDD81" (solo alcuni colori verde) e combinato con android:layout_margin="2dp" sono stato in grado di ottenere la "griglia" linee che volevo. Grazie a CommonsWare però per farmi pensare in una nuova direzione che si è trasformata in una soluzione.

MODIFICA: Questo non funziona come previsto. Sono necessari gli android:layout_alignLeft/Right che sono disponibili solo tramite RelativeLayout per ottenere la larghezza giusta sugli articoli secondari. Non ho ancora testato questo problema utilizzando questa idea, child items all'interno di RelativeLayout all'interno di GridLayout.

+0

Grazie per avermi fatto pensare nella giusta direzione. Sono stato in grado di realizzare l'effetto "griglia" usando (nel mio caso) 'LinearLayout' nidificato l'uno dentro l'altro con colori e margini di sfondo differenti. – ianthetechie

Problemi correlati