Заполнитель макета Android для динамически добавляемого представления

В моем 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);

Однако это добавляет ненужное представление в иерархию.

Какой рекомендуемый способ сделать это?

22
задан Ralf 14 August 2012 в 10:19
поделиться