Für das Leben von mir kann ich nicht herausfinden, warum mein Text so endet. Ich bin neu in Java/Android-Programmierung, also entschuldige ich mich, wenn die Antwort für mich nicht offensichtlich scheint. Ich habe eine tablelayout
mit einer statischen Reihe und den Rest dynamisch einprogrammiert. Die statische Reihe sieht gut aus, aber meine dynamische Reihe hat die 1. textview
gequetscht, obwohl Gewicht für 1 für beide gesetzt wird textviews
. Kann mir bitte jemand erklären, was ich mache/nicht mache?Textview und TableRow Gewichte funktionieren nicht richtig Android
XML:
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="16dp"
android:id="@+id/alchemist_favored_class">
<TableRow>
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Race"
android:gravity="left"
android:padding="2dp" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Bonus"
android:gravity="left"
android:padding="2dp" />
</TableRow>
</TableLayout>
Java:
//Populate Favored Class Options Table
TableLayout tableFC = (TableLayout) findViewById(R.id.alchemist_favored_class);
String[] fcr = getResources().getStringArray(R.array.alchemist_favored_class_race);
String[] fcd = getResources().getStringArray(R.array.alchemist_favored_class_detail);
TableRow.LayoutParams lp1 = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f);
TableRow.LayoutParams lp2 = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f);
for (int i = 0; i < fcr.length; i++){
TableRow tr = new TableRow(this);
TextView tvFCR = new TextView(this);
TextView tvFCD = new TextView(this);
tr.addView(tvFCR);
tvFCR.setText(fcr[i]);
tvFCR.setSingleLine(true);
tvFCR.setPadding(2,2,2,2);
tvFCR.setLayoutParams(lp1);
tr.addView(tvFCD);
tvFCD.setText(fcd[i]);
tvFCD.setPadding(2,2,2,2);
tvFCD.setLayoutParams(lp2);
//Add background color to every other row.
if ((i % 2) == 0) {
tr.setBackgroundColor(Color.parseColor("#EEEEEE"));
}
tableFC.addView(tr, new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.MATCH_PARENT));
}
Ergebnis:
Warum Sie eine ‚Listview‘ nicht mit einer benutzerdefinierten Zeilenansicht verwenden? Wäre viel einfacher als das, was Sie tun ... – margabro
Die Eltern sehen uns eine Bildlaufansicht. Wäre eine Listenansicht in einer Scroll-Ansicht nicht seltsam, wenn beide scrollbar sind? – Flakpanda