J'essaye de dupliquer la disposition suivante par programme; cependant, setGravity et setPadding ne semblent pas avoir d'effet:Mise en page par programmation avec SetPadding et SetGravity
J'essaye de recréer les textviews dans les TableRows (notez qu'il y a le remplissage et la deuxième vue de texte est alignée à droite). De plus, je suis en train de recréer des entrées supplémentaires parce qu'ils sont dynamiques:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myinfo_root"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:scrollbars="vertical"
>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainTable"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:layout_column="1"
android:text="Text1"
android:padding="3dip" />
<TextView
android:id="@+id/text1"
android:text="TBD"
android:gravity="right"
android:padding="3dip" />
</TableRow>
<TableRow>
<TextView
android:layout_column="1"
android:text="Text2"
android:padding="3dip" />
<TextView
android:id="@+id/text2"
android:text="TBD"
android:gravity="right"
android:padding="3dip" />
</TableRow>
. . .
Voici un extrait de code pour ajouter les TextViews. Cela semble fonctionner mais les entrées n'ont pas de remplissage et ne sont pas alignées correctement.
int n = 0;
TableLayout table = (TableLayout) findViewById(R.id.mainTable);
for (int j=0; j<2; j++) {
Log.v(LOG_TAG, "entering for loop");
n++;
TableRow tr = new TableRow(getApplicationContext());
tr.setId(100+n);
String key = "hello";
float value = (float) 1.388);
value = value/3600;
TextView tvDynamicKey = new TextView(getApplicationContext());
TextView tvDynamicUnit = new TextView(getApplicationContext());
tvDynamicUnit.setText(Float.toString(value));
tvDynamicUnit.setGravity(Gravity.RIGHT);
tvDynamicKey.setText(key + " " + n);
tvDynamicKey.setPadding(3, 3, 3, 3);
tvDynamicUnit.setPadding(3, 3, 3, 3);
tr.addView(tvDynamicKey);
tr.addView(tvDynamicUnit);
table.addView(tr);
}
}
Merci, ça fonctionne! – user836200