Autore Topic: Aggiungere view una sotto l'altra in una stessa riga di una tabella  (Letto 550 volte)

Offline mikyx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Linux Ubuntu 13.04
Salve a tutti,
ho cercato nel forum e su google ma non ho trovato nulla.
Dunque dovrei aggiungere una o più TextView in una riga di una tabella, ma che siano  una sotto l'altra.

Io faccio:
Codice (Java): [Seleziona]
final TableRow row = new TableRow(this);
row.setClickable(true);
row.setPadding(0, 0, 0, 30);

TextView lblSubject = new TextView(this);
lblSubject.setText(message.getSubject());
lblSubject.setPadding(2, 0, 5, 10);
lblSubject.setTextColor(Color.MAGENTA);
row.addView(lblSubject);

TextView lblFrom = new TextView(this);
lblFrom.setText("FROM");
lblFrom.setTextColor(Color.MAGENTA);
row.addView(lblFrom);

Ma le due label vengono inserite l'una accanto all'altra es:

RIGA 1: messaggio1   FROM
RIGA2: messaggio2    FROM

...

Io ho necessità che diventi:

RIGA1: messaggio1
            FROM
RIGA2: messaggio2
             FROM


in modo che sia "messaggion" che "FROM" siano nella stessa riga..

Grazie a tutti  in anticipo! :D

Offline matttt

Re:Aggiungere view una sotto l\'altra in una stessa riga di una tabella
« Risposta #1 il: 24 Agosto 2013, 16:44:43 CEST »
0
Mmm... a occhio mi sa che non hai specificato le dimensioni delle View che crei dinamicamente.
Codice (Java): [Seleziona]
LayoutParams layoutParams = new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT );E poi con imposti le dimensioni nelle View con setLayoutParams( layoutParams )

Post unito: 24 Agosto 2013, 16:46:22 CEST
Aggiungo che ad alcuni Layout passi LayoutParams nell' addView()
Vale anche per LinearLayout e il TableRow è un derivato.
« Ultima modifica: 24 Agosto 2013, 16:46:22 CEST da matttt, Reason: Merged DoublePost »
Le mie apps su Google Play Store:

Offline mikyx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Linux Ubuntu 13.04
Re:Aggiungere view una sotto l'altra in una stessa riga di una tabella
« Risposta #2 il: 24 Agosto 2013, 16:47:20 CEST »
0
Nono quello lo faccio (non sono stato a ricopiare interamente il codice per motivi di leggibilità) ma non c'entra con quello che serve a me.. Penso che il problema sia nella row.addView() perchè questo metodo aggiunge uno di fianco all'altro le view..

Offline matttt

Re:Aggiungere view una sotto l'altra in una stessa riga di una tabella
« Risposta #3 il: 24 Agosto 2013, 16:53:15 CEST »
0
Non ho guardato come addView in TableLayout ma ipotizzo che vada in senso orizzontale e poi a riga piena passa alla successiva.
Quindi se sei sulla prima cella e aggiungi una View è naturale che te la metta a destra, poi la successiva nella prima a sinistra.

Non è che sta facendo in questo modo? Quante righe / colonne hai impostato?
Le mie apps su Google Play Store:

Offline mikyx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Linux Ubuntu 13.04
Re:Aggiungere view una sotto l'altra in una stessa riga di una tabella
« Risposta #4 il: 25 Agosto 2013, 12:34:21 CEST »
0
Si è naturale che lo faccia, io appunto sto cercando un metodo (se esiste) che me la aggiunga sotto e non di fianco.. forse più che una  tabella posso provare con un LinearLayout...

Offline matttt

Re:Aggiungere view una sotto l'altra in una stessa riga di una tabella
« Risposta #5 il: 25 Agosto 2013, 12:47:00 CEST »
0
Si è naturale che lo faccia, io appunto sto cercando un metodo (se esiste) che me la aggiunga sotto e non di fianco.. forse più che una  tabella posso provare con un LinearLayout...
In alternativa puoi aggiungere View "vuote" dove non hai intenzione di mettere delle celle.
Ma se vuoi realizzare una sola colonna LinearLayout verticale va benissimo.
Le mie apps su Google Play Store:

Offline mikyx

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Linux Ubuntu 13.04
Re:Aggiungere view una sotto l\'altra in una stessa riga di una tabella
« Risposta #6 il: 25 Agosto 2013, 13:02:09 CEST »
0
Solo che poi queste view devono essere cliccabili, perche devo capire quale è stata cliccata. Inoltre devo aggiungerle dinamicamente, non so quante siano.. questo preferivo una tabella..

Post unito: 25 Agosto 2013, 14:06:36 CEST
Ok ho risolto aggiungendo le TextView a una LinearLayout con orientamento Vertical, e poi aggiungo questa LinearLayout alla riga.. Il codice è questo:
Codice (Java): [Seleziona]
TextView lblSubject = new TextView(this);
TextView lblFrom = new TextView(this);
LinearLayout lnrLayout=new LinearLayout(this);
final TableRow row = new TableRow(this);
row.setClickable(true);
row.setPadding(0, 0, 0, 30);
lnrLayout.setOrientation(LinearLayout.VERTICAL);
row.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT));

//setto la TextView e poi la aggiungo al LinearLayout
lblSubject.setText(message.getSubject());
lblSubject.setPadding(2, 0, 5, 10);
lblSubject.setTextColor(Color.MAGENTA);
lnrLayout.addView(lblSubject);

//idem come sopra
lblFrom.setText("FROMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM");
lblFrom.setTextColor(Color.BLUE);
lnrLayout.addView(lblFrom);

//aggiungo la LinearLayout alla riga, e poi la riga alla tabella
row.addView(lnrLayout);
table.addView(row, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

Grazie comunque per le tue risposte! ;)
« Ultima modifica: 25 Agosto 2013, 14:06:37 CEST da mikyx, Reason: Merged DoublePost »

Offline matttt

Re:Aggiungere view una sotto l\'altra in una stessa riga di una tabella
« Risposta #7 il: 25 Agosto 2013, 14:35:10 CEST »
0
Un Thanks non mi dispiace se vuoi :D

Cmq non mi sembra ti serva veramente il TableLayout nel tuo caso.
Col LinearLayout puoi fare tranquillamente una colonna singola e cliccabile.
Le mie apps su Google Play Store: