Проблема с RelativeLayout

У меня возникли проблемы с использованием RelativeLayout.

Я хочу 4 пространства одинакового размера, ориентированных горизонтально. Это достаточно просто, если вы содержите их внутри LinearLayout. Вы просто устанавливаете их layout_width на «fill_parent», а их layout_weight на «1». Однако как я могу сделать это внутри RelativeLayout? Я не знаю размер ширины каждого из 4 пробелов, поскольку телефоны Android могут иметь разные размеры, и я хочу, чтобы это было динамично.

Идеи?

На случай, если есть альтернативное решение, вот что я пытаюсь сделать: Вот быстрый макет, который я нарисовал. У меня есть панель инструментов, и при первом посещении экрана пользователем я бы хотел, чтобы некоторые изображения лежали поверх экрана. Каждое из этих изображений содержит стрелку с некоторым текстом, связанным с тем, на что стрелка предназначена. Итак, вы можете видеть, как мне нужно разместить изображение относительно одного из 4 пространств, а сами изображения могут увеличить ширину пространства. http://i42.tinypic.com/2yxi683.jpg

Обновление: я нашел решение, хотя хотел бы найти лучшее. Я захватил 4 представления программно, определил ширину дисплея, разделил это число на 4 и установил ширину каждого представления в это значение.


person Andrew    schedule 22.11.2011    source источник


Ответы (2)


Возможно, вы захотите опубликовать макет того, что вы действительно хотите для макета, на случай, если есть другой подход, который вы можете использовать, который кто-то может придумать, но если вы действительно не можете использовать вложенный подход LinearLayout, у вас, вероятно, будет для создания индивидуального макета.

person kabuko    schedule 22.11.2011
comment
Вот быстрый макет, который я нарисовал. У меня есть панель инструментов, и при первом посещении экрана пользователем я бы хотел, чтобы некоторые изображения лежали поверх экрана. Каждое из этих изображений содержит стрелку с некоторым текстом, связанным с тем, на что стрелка предназначена. Итак, вы можете видеть, как мне нужно разместить изображение относительно одного из 4 пространств, а сами изображения могут увеличить ширину пространства. i42.tinypic.com/2yxi683.jpg - person Andrew; 23.11.2011

Создайте LinearLayout и поместите 4 вида в LinearLayout. Затем просто добавьте LinearLayout в RelativeLayout. Это самый простой способ.

person ahodder    schedule 22.11.2011
comment
Это не сработает для меня. Мне нужно, чтобы 4 пробела находились непосредственно внутри RelativeLayout, чтобы я мог накладывать другие представления относительно 4 пробелов. - person Andrew; 23.11.2011
comment
Затем используйте TableLayout. Это ваш единственный другой вариант, я полагаю. - person ahodder; 23.11.2011
comment
Это тоже не сработает. В основном у меня есть изображения, которые я хочу отобразить на экране, которые выглядят так, как будто они парят над экраном. Это вспомогательные изображения, содержащие стрелку и некоторый текст, описывающий, на что указывает стрелка. У меня есть панель инструментов с 4 равномерно расположенными кнопками, поэтому мне нужен способ, чтобы эти всплывающие вспомогательные изображения указывали прямо на кнопки. Эти изображения шире, чем отдельные столбцы. - person Andrew; 23.11.2011
comment
Что, вероятно, будет лучше для вас, так это настройка RL при рисовании. Я бы как-нибудь поместил туда парящие изображения. - person ahodder; 23.11.2011