Ich versuche, ein TableLayout programmgesteuert zu erstellen. Es wird einfach nicht funktionieren. Das gleiche Layout in einer XML-Datei funktioniert jedoch. Dies ist, was ich habe:Erstellen Sie TableLayout programmgesteuert
public class MyTable extends TableLayout
{
public MyTable(Context context) {
super(context);
setLayoutParams(new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
TableRow row = new TableRow(context);
row.setLayoutParams(new TableRow.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
Button b = new Button(getContext());
b.setText("hello");
b.setLayoutParams(new LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
row.addView(b);
addView(row)
}
}
...
// In main activity:
MyTable table = new MyTable(this);
mainLayout.addView(table);
Wenn ich dies ausführen, bekomme ich keinen Absturz, aber nichts erscheint. Wenn ich die TableRow-Instanz loswerde, erscheint zumindest die Schaltfläche als direktes Kind der TableLayout-Instanz. Was mache ich falsch?
können Sie Ihren Code Lösung vorschlagen? Es sieht so aus, als ob du das schon oben machst. – Atma
Danke! @Atma TableRows sollte TableLayout.LayoutParams verwenden und Ansichten innerhalb der TableRows sollten TableRow.LayoutParams verwenden. :) – Brayden
Schrecklich, dass Sie dies explizit tun müssen, aber es hat für mich funktioniert, danke! –