Android – как программно вклинивать представление между представлениями в макете, предварительно загруженной из XML?

Я разрабатываю приложение для Android с фрагментами. Хотя большинство моих макетов заранее определены в XML, я хотел бы программно вставить новое представление между представлениями, которые уже были загружены в LinearLayout при запуске.

Введите описание изображения здесь

Как мне с этим заняться?

благодаря

Его можно указать индекс, в то время как u динамически добавляет представление в LinearLayout.

Задайте высоту первого представления как

android:layout_height="0dp" android:layout_weight="1" 

Установить height = wrap_content для второго представления в XML

Затем, в то время как u добавляет новый вид height = wrap_content , задайте его height = wrap_content и добавьте его в родительский LinearLayout как это

  parentLinearLayout.addView(childView, index); //index = position where you want to insert the new view. 

Это может помочь вам. 🙂

Красный вид должен иметь настройку по умолчанию View.setVisibility(View.GONE) в начале. Когда его время появится, вы можете переключиться на View.setVisibility(View.VISIBLE) . Я не могу проверить решение прямо сейчас, но он должен сделать трюк. Таким образом, в этом случае вы не вставляете новый вид, а делаете существующим видимым.