Wenn ich zum Beispiel ein lineares Grundlayout definiert habe, dessen Ausrichtung vertikal ist:
main.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_root"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
<!-- I would like to add content here dynamically.-->
</LinearLayout>
Innerhalb des linearen Grundlayouts möchte ich mehrere untergeordnete lineare Layouts hinzufügen. Jede Ausrichtung des untergeordneten linearen Layouts ist horizontal . Mit all diesen könnte ich eine tabellenähnliche Ausgabe erhalten.
Zum Beispiel root mit untergeordnetem Layout wie:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_root"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical"
<!-- 1st child (1st row)-->
<LinearLayout
...
android:orientation="horizontal">
<TextView .../>
<TextView .../>
<TextView .../>
</LinearLayout>
<!-- 2nd child (2nd row)-->
...
</LinearLayout>
Da die Anzahl der untergeordneten linearen Layouts und deren Inhalt sehr dynamisch sind, habe ich beschlossen, dem linearen Root-Layout programmgesteuert Inhalte hinzuzufügen.
Wie kann das zweite Layout programmgesteuert zum ersten hinzugefügt werden, wodurch auch alle Layoutattribute für jedes untergeordnete Element festgelegt und weitere weitere Elemente innerhalb des untergeordneten Elements hinzugefügt werden können?
quelle
LinearLayout layout = (LinearLayout)findViewById(R.id.layout); View child = getLayoutInflater().inflate(R.layout.child, null); layout.addView(child);
quelle
child.findViewById
, um das Element abzurufen und den Listener onclick festzulegen.Sie können LinearLayout wie folgt kaskadieren:
LinearLayout root = (LinearLayout) findViewById(R.id.my_root); LinearLayout llay1 = new LinearLayout(this); root.addView(llay1); LinearLayout llay2 = new LinearLayout(this); llay1.addView(llay2);
quelle
Ich habe eine genauere Möglichkeit gefunden, Ansichten wie lineare Layouts in Kotlin hinzuzufügen (übergeordnetes Layout in inflate () und false übergeben).
val parentLayout = view.findViewById<LinearLayout>(R.id.llRecipientParent) val childView = layoutInflater.inflate(R.layout.layout_recipient, parentLayout, false) parentLayout.addView(childView)
quelle