LinearLayout с вложенным RelativeLayout, проблема с заказом

У меня проблема с двумя динамически созданными макетами, внешний из которых представляет собой LinearLayout, который содержит относительный макет и кнопку (просто для тестирования, скоро у меня будет больше кнопок).

My Relative Layout — это, по сути, расположение кнопок 9x9 для игры в судоку.

Теперь моя проблема заключается в следующем: я хочу, чтобы относительный макет находился поверх кнопки, а не под ней. Следующий код помещает его ниже:

MainLayout lay = new MainLayout(this); // MainLayout is derived from RelativeLayout
LinearLayout outerLay = new LinearLayout(this);
outerLay.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
outerLay.setOrientation(LinearLayout.VERTICAL);
Button but = new Button(this);

outerLay.addView(but);
outerLay.addView(lay);

setContentView(outerLay);

Это прекрасно работает, но если я переставлю их так:

outerLay.addView(lay);
outerLay.addView(but);

кнопка даже не появляется. Кто-нибудь знает об этом? (То же самое происходит с вертикальным кстати.).

Привет.


person Dobioh    schedule 25.08.2011    source источник


Ответы (1)


Если ваш макет MainLayout выглядит так:

setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

Ну, на экране нет места для отображения чего-либо.

Ваша ставка слишком велика. Проверьте свои layoutParams этого. Я надеюсь, что это поможет вам.

person mthpvg    schedule 25.08.2011
comment
Спасибо за Ваш ответ. Не будет ли это иметь место и в порядке 1? Также я вижу достаточно неиспользуемого пространства на реальном экране. - person Dobioh; 25.08.2011
comment
Нет, потому что ваша кнопка, безусловно, меньше. Неиспользованное пространство ничего не значит, потому что ваш макет не заполнен чем-то, что можно было бы отобразить. - person mthpvg; 25.08.2011
comment
Попробуйте: lay.setLayoutParams (новый LayoutParams (100, 100)); перед вашими addViews. - person mthpvg; 25.08.2011
comment
Явная установка относительного макета на LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT по-прежнему вызывает то же поведение. - person Dobioh; 25.08.2011
comment
Спасибо mthpvg, это, кажется, сужает ошибку. Кнопка видна знаете, хотя у меня серьезные проблемы с масштабированием. Я исправлю это, спасибо за вашу помощь. - person Dobioh; 25.08.2011