Ich möchte ein Eingabefeld mit einer Absenden-Schaltfläche auf der rechten Seite erstellen. Zwischen ihnen sollten sie die Breite des Bildschirms überspannen. Zur Zeit habe ich:LinearLayout gefüllt von rechts nach links
LinearLayout row= new LinearLayout(context);
row.setOrientation(HORIZONTAL);
row.setGravity(Gravity.RIGHT);
EditText input = new EditText(context);
Button submit = new Button(context);
submit.setText("Submit");
row.addView(submit);
row.addView(input,LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
myView.addView(row,LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
Daraus ergibt sich die korrekte Verteilung des Raumes: Der Submit-Button so viel Platz einnimmt, wie es braucht, die Eingabe Taste, um den verbleibenden Platz einnimmt, aber sie sind falsch herum (die Sendeknopf ist auf der linken Seite, trotz der Einstellung der Schwerkraft). Wenn ich die Schwerkraft wegnehme und die Reihenfolge des Hinzufügens der Elemente zur Reihe umkehre, nimmt das Eingabefeld die gesamte Breite des Bildschirms ein, und die Übergabeschaltfläche ist nicht sichtbar. Was mache ich falsch?
Und ja, ich denke, dass es keine gute Idee ist, Layouts aus Code zu erstellen. Tun Sie dies nur, wenn das XML-Layout für Ihren Fall absolut nicht möglich ist. –
Ich bin noch relativ neu in Android, und bisher ist alles in diesem Projekt Code-basiert. Ich werde XML in zukünftigen Projekten verwenden, aber jetzt nehme ich die Codelösung. – fredley