Ich füge eine Schaltfläche programmatisch in meine vorhandene Android-Ansicht ein, wenn der Benutzer auf eine andere Schaltfläche klickt. Es funktioniert in Bezug auf Funktionalität, aber einige der Stilinformationen scheinen ignoriert zu werden.Android - Eine Ansicht programmatisch hinzufügen ignoriert einige Stilattribute
Ich füge die Schaltfläche hinzu, indem ich ein separates Layout habe, das nur die Schaltfläche enthält, wobei der Stilwert vorausgefüllt ist.
<Button xmlns:android="http://schemas.android.com/apk/res/android" style="@style/FileStorageDeleteButton"></Button>
von getLayoutInflater
verwenden, bin ich dann in der Lage diese Schaltfläche, um das Layout hinzuzufügen.
buttonDelete = (Button) getLayoutInflater().inflate(R.layout.pete_button_filedelete, null);
LinearLayout layout = (LinearLayout)findViewById(R.id.layoutFileStorage);
layout.addView(buttonDelete, 1);
Ich habe eine XML-Datei in dem Werte-Verzeichnis, das die Farbe setzt, Text usw. für @style/FileStorageDeleteButton
, von denen die meisten von der Taste verwendet werden, wenn es hinzugefügt werden . Aber aus irgendeinem Grund werden die vier Randattribute und layout_below
ignoriert.
Ich erhalte keine Fehler im LogCat, wenn diese Schaltfläche erscheint, als ob das Styling einfach nicht angewendet wird. Wenn ich die Schaltfläche manuell in das XML für dieses Layout einfüge, werden alle Stile erfolgreich verwendet.
Jede Hilfe sehr geschätzt.
Danke David - dein Beitrag hat mich in die richtige Richtung geschickt, um zu finden, dass ich p ass mehr Variablen in aufblasen. Nun benutze 'buttonDelete = (Button) getLayoutInFlater(). Infllate (R.layout.pete_button_filedelete, layout, false);', obwohl 'layout_below' immer noch ignoriert wird. Ich kann das umgehen, aber ich frage mich nur, warum das immer noch nicht funktioniert? Danke noch einmal! Wenn ich einen guten Ruf hätte, würde ich :) –
'layout_below' wird nur für' RelativeLayout' verwendet. Ihr 'LinearLayout' ignoriert dieses Attribut. In einem LinearLayout können Sie über/unter steuern, indem Sie die Position der Ansicht innerhalb des Layouts verwenden. –