En mi actividad de Android, necesito agregar una sola vista dinámicamente (en tiempo de ejecución), en una posición específica en un diseño. La vista que se agregará se determina en tiempo de ejecución. Por ejemplo, puede que el diseño se vea más o menos así:marcador de posición de diseño de Android para vista añadida dinámicamente
<LinearLayout ...>
<TextView ... />
<!-- Dynamic item to be added here -->
<TextView ... />
</LinearLayout>
¿Cuál es la mejor manera de lograrlo?
Una solución es usar layout.addView(view, index)
, pero prefiero no codificar el índice.
Otra solución es utilizar un FrameLayout como un marcador de posición, y el lugar puede visión dinámica dentro de la FrameLayout, por ejemplo:
<LinearLayout ...>
<TextView ... />
<FrameLayout android:id="@+id/placeholder" />
<TextView ... />
</LinearLayout>
Entonces:
findViewById(R.id.placeholder).addView(view);
Sin embargo, esto añade una vista innecesario en la jerarquía
¿Cuál sería la forma recomendada de hacerlo?
Gracias. Terminé usando 'findViewById (R.id.placeholder) .addView (view);', donde el marcador de posición puede ser un FrameLayout, o cualquier otro diseño si la vista solo debe agregarse al final, como ScrollView. – Ralf
puede obtener un árbol profundo de vistas anidadas así, lo que puede dar lugar en algunos casos a un error grave, debido al tamaño de pila limitado para el subproceso UI –