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:
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);
Ma così facendo non mi viene visualizzato niente poichè w risulta essere zero.
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?