В моей 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);
Однако это добавляет ненужное представление в иерархии.
Каким будет рекомендуемый способ сделать это?