Android: Prepend LinearLayout программно

Я создал макет в своем приложении, который включает в себя следующее:
main_layout (FrameLayout, заполняет весь экран)
-> включает в себя: main_interface (LinearLayout, высота / ширина заполняет родитель)

Теперь я хочу добавить еще LinearLayout в main_layout Перед main_interface, Я попробовал это:

LinearLayout bar = new LinearLayout(this);
        bar.setGravity(Gravity.TOP);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        bar.setLayoutParams(params);
        main_layout.addView(bar);

но это просто перекрывает мой main_interface,

Любая помощь?

1 ответ

Решение

Если вы хотите добавить View на конкретную позицию в ViewGroup, ты можешь использовать addView(view, position), В этом случае, предполагая main_interface это первый View, ты можешь позвонить main_layout.addView(bar, 0),

Тем не менее, вы должны исправить свой макет в первую очередь. Если вы используете FrameLayout как твой main_layout и установить main_interface высота и ширина до match_parentтогда они наверняка будут перекрываться. Попробуйте сделать свой main_layout LinearLayout с android:orientation="vertical" если вы хотите вертикально сложены Views.

Если бы вы могли опубликовать свой фактический макет XML, я мог бы помочь вам изменить и протестировать его.

Другие вопросы по тегам