Si, por ejemplo, he definido un diseño lineal raíz cuya orientación es vertical:
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>
Dentro del diseño lineal raíz, me gustaría agregar varios diseños lineales secundarios , cada una de las orientaciones del diseño lineal secundario es horizontal . Con todo esto, podría terminar con una tabla como salida.
Por ejemplo raíz con niño disposición tal como:
<?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>
Dado que el número de diseños lineales secundarios y sus contenidos son bastante dinámicos, he decidido agregar contenido al diseño lineal raíz mediante programación.
¿Cómo se puede agregar el segundo diseño al primero mediante programación, que también podría establecer todos los atributos de diseño para cada niño y agregar más elementos dentro del niño?
fuente
LinearLayout layout = (LinearLayout)findViewById(R.id.layout); View child = getLayoutInflater().inflate(R.layout.child, null); layout.addView(child);
fuente
child.findViewById
para obtener el elemento y configurar el oyente al hacer clic .Puede lograr LinearLayout en cascada de esta manera:
LinearLayout root = (LinearLayout) findViewById(R.id.my_root); LinearLayout llay1 = new LinearLayout(this); root.addView(llay1); LinearLayout llay2 = new LinearLayout(this); llay1.addView(llay2);
fuente
Encontré una forma más precisa de agregar vistas como diseños lineales en kotlin (Pase el diseño principal en inflate () y false)
val parentLayout = view.findViewById<LinearLayout>(R.id.llRecipientParent) val childView = layoutInflater.inflate(R.layout.layout_recipient, parentLayout, false) parentLayout.addView(childView)
fuente