2013-05-28 2 views
2

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

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

ответ

7

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

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

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

+0

Спасибо, ты был прав в каждой точке! Я изменил Layout на LinearLayout и установил индекс с addView() равным нулю. БЛАГОДАРЯ! –

+0

Добро пожаловать! :) – Krauxe

Смежные вопросы