Hallo,
ich versuche, durch eine Liste zu iterieren und eine entsprechende Anzahl TextViews auf dem Bildschirm auszugeben. Soweit funktioniert das auch, nur möchte ich, dass das TextView die übergeordnete TableRow ausfüllt (fill_parent). Das gelingt mir jedoch nicht. Es hat den Anschein, als hätte die übergeordnete TableRow keine Breite (bzw eine Breite von 0) was dazu führt, dass das Textview nicht angezeigt wird.
Was muss ich machen, damit das TextView tv die Zeile ausfüllt?
Code
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/plist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1"
android:shrinkColumns="1"
android:padding="10dip">
</TableLayout>
private void testvoid(List<String> liste) {
TableLayout plist = (TableLayout) findViewById(R.id.plist);
for (String p : liste) {
TableRow row = new TableRow(thisInstance);
TableLayout.LayoutParams tableRowParams = new TableLayout.LayoutParams(
TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT);
int leftMargin = 0;
int topMargin = 0;
int rightMargin = 0;
int bottomMargin = 5;
tableRowParams.setMargins(leftMargin, topMargin, rightMargin, bottomMargin);
row.setLayoutParams(tableRowParams);
TextView tv = new TextView(thisInstance);
tv.setTextColor(Color.BLUE);
tv.setText(Html.fromHtml(p));
int resid = R.drawable.gradient_shape_green;
row.setBackgroundResource(resid);
tv.setTextSize(14);
tv.setPadding(10, 10, 10, 10);
tv.setTag(p);
tv.setBackgroundColor(Color.MAGENTA);
tv.setOnClickListener(HandleTvClick);
tv.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));
row.addView(tv);
plist.addView(row, tableRowParams);
} }
Alles anzeigen