Ich habe eine multiple dimens.xml-Dateien für alle "kleinste Breite", die ich für die Schaltfläche Größe verwenden. Und ich habe auch mehrere Versionen für das Hauptlayout und für das Tastenlayout (für Multi-Screen-Unterstützung).Hinzufügen von Button zu LinearLayout programmatisch funktioniert nicht richtig
Ich möchte programmgesteuert mehrere Schaltflächen in Layout einfügen und diese Schaltfläche mit Layout aus XML aufblasen.
Dies ist, wie ich dies tun:
Button temp_button = null;
final LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for(int i = 0; i < 7; i++) {
temp_button = (Button)inflater.inflate(R.layout.answer_letter_button, null);
temp_button.setTextColor(accent_color);
answer_letters.add(temp_button);
answer_panel.addView(answer_letters.get(i));
}
Dies ist eine übergeordnete Layout für diese Schaltflächen:
<LinearLayout
android:id="@+id/answer_panel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
app:layout_constraintBottom_toTopOf="@+id/letter_panel">
</LinearLayout>
Und Tasten-Layout:
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/answer_letter_button_size"
android:layout_height="@dimen/answer_letter_button_size"
android:text="M"
android:textStyle="bold"
android:textColor="@color/colorAccent"
android:textSize="@dimen/answer_letter_button_text_size"
android:layout_margin="@dimen/answer_letter_button_margin_size"
android:background="@drawable/shaped_button" />
Was ich sehe eigentlich:
Was mache ich falsch, jemand mir sagen?
Sorry, ich falsch ausgedrückt. Ich meine, dass etwas mit der Größe der resultierenden Schaltfläche falsch ist. Meist mit einer Knopfbreite.
Warum fügen Sie Ihre Schaltflächenansicht innerhalb von ** answer_letters ** zuerst und dann ** answer_panel ** hinzu? –
Sie führen hier eine Schleife aus, weshalb dort die Anzahl der Schaltflächen angezeigt wird. –