In una mia applicazione android ho un'activity così composta:
miaActivity.jpg
All'interno del TableLayout vorrei costruire una tabella a n righe e 5 colonne.
Costruisco la tabella attraverso l'inserimento in stile lista di n TableRow, e ognuna di esse contiene 5 TextView.
Bene, ora vorrei che ciascuna "colonna" avesse una dimensione be definita e non uniforme per tutti. Chiamata x la lunghezza (width) della TableLayout vorrei che le 5 colonne avessero rispettivamente le seguenti dimensioni: 0.6x,0.1x,0.1x,0.1x,0.1x
Per rendere l'idea un qualcosa del genere
TableRow.jpg
Per far ciò ho fatto qualcosa del genere all'interno del "onCreate" dell'Activity:
Ma così facendo non mi viene visualizzato niente poichè w risulta essere zero.codice:TableLayout tl = (TableLayout) findIdByView (R.id.nomeTableLayout); int w = tl.getWidth (); LayoutParams param=new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT); TableRow tr = new TableRow (this); tr.setLayoutParams(param); for (int i=0;i<numeroColonne;i++) { TextView tv = new TextView (this); tv.setWidth((int)(w * (i==0 ? 0.6 : 0.1))); tv.setText ("col" + i); tv.setTag (tr); tr.addView (tv); } tl.addView (tr);
Ho provato a settare w come tl.getMeasuredWidth () e anche provando a prendere le dimensioni all'interno del metodo onPostCreate dell'activity ma sempre lo stesso risultato.
Come potrei risolvere?

Rispondi quotando