В моей активности Android мне нужно добавить один вид динамически (во время выполнения) в определенную позицию макета. Представление, которое будет добавлено, определяется во время выполнения. Например, может макет может выглядеть примерно так:
<LinearLayout ...>
<TextView ... />
<!-- Dynamic item to be added here -->
<TextView ... />
</LinearLayout>
Каков наилучший способ достичь этого?
Одним из решений является использование layout.addView(view, index)
, но я бы предпочел не указывать индекс жестко.
Другое решение заключается в использовании FrameLayout в качестве заполнителя, и место может динамически отображаться внутри FrameLayout, например:
<LinearLayout ...>
<TextView ... />
<FrameLayout android:id="@+id/placeholder" />
<TextView ... />
</LinearLayout>
Тогда:
findViewById(R.id.placeholder).addView(view);
Однако это добавляет ненужное представление в иерархию.
Каков рекомендуемый способ сделать это?