2013-10-15 5 views
0

У меня есть макет андроида, в котором есть некоторые другие случайные вещи, а в средней части у меня есть linearLayout, содержащий 4 RelativeLayouts, такие как следующий XML-код.RelativeLayout не работает должным образом

<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left|center_vertical" 
     android:background="@drawable/backgroudpng"> 

    </RelativeLayout> 
</LinearLayout> 

Это сказано, когда я пытаюсь поместить объекты в этот относительный макет, это спуститься вниз по склону. когда когда-либо я помещаю в него объект, он позиционирует объект в другом разделе макета (не там, где я его перетаскиваю!). Так, например, если я отбрасываю текстовое поле в верхнем правом углу относительной компоновки, оно может быть помещено в нижнем правом углу или в центре ...

Мне нужен эфир, чтобы мне было нужно работать другой подход. Моя цель - создать настраиваемую кнопку, которая позволяет отображать на ней одновременно три или четыре разных текстовых объекта.

То, что я пытаюсь сделать (я могу сделать это в садомазо, если вы нуждаетесь во мне тоже)

______________________________________________________________________________________ 
|                      | 
| Some information here                | 
|            picture of a number from 1-10 here | 
| Something else about the "button here"            | 
|                      | 
|_____________________________________________________________________________________| 

Во всяком случае, я думал об использовании вида поверхности преформы это, но, казалось бы излишним , В основном я просто хочу создать 4 из этих больших интерфейсов, доступных по клику, которые отображают некоторые параметры, которые они могут установить, щелкнув по нему. Во всяком случае, если это неправильный способ сделать это, пожалуйста, дайте мне знать! Хотя это похоже на простой способ сделать это, и на этом я и надеюсь!

UPDATE:

Вот краткая картина того, что я пытаюсь выполнить:

enter image description here

свет коричневые представляет собой фоновое изображение, черный представляет собой фон для всего представления , а затем текст - только пример текста. Я хочу, чтобы они могли нажимать на это представление, как кнопку, и изменять настройки этих параметров. Проблема, с которой я столкнулась, - это перетащить небольшой текстовый объект в место, где я хочу установить «Тип», и когда я отпущу его, он будет расположен в месте, где должно быть «Rows Effected».

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

Спасибо за помощь!

UPDATE 2:

Вот код, а также картина того, что он производит (я проверил, что это выглядит на моем телефоне, а так же как другой телефон и эмулятор)

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/buttonbackground"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:text="Small Text" 
     android:id="@+id/textView" 
     android:textColor="#debabc" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_marginLeft="20dp"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:text="Small Text" 
     android:id="@+id/textView2" 
     android:layout_marginRight="21dp" 
     android:textColor="#dec1db" 
     android:layout_below="@+id/textView3" 
     android:layout_alignParentRight="true"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceSmall" 
     android:text="Small Text" 
     android:id="@+id/textView3" 
     android:textColor="#debabd" 
     android:layout_alignBaseline="@+id/textView" 
     android:layout_alignBottom="@+id/textView" 
     android:layout_toLeftOf="@+id/textView2"/> 
</RelativeLayout> 

enter image description here

синих коробки примерно где я поместил текст, хотя только, чтобы быть ясно, что они являются операциями РЕПО как на X, так и на Y.

Кроме того, это приложение Android Studio, но я проверил и загрузил макет в eclipse, и он тоже делает то же самое. Странно, как я использовал их раньше и не имел этой проблемы ... Я должен делать что-то неправильно.

Дополнительная информация: Пробовал визуализировать его API14, 16 и 18.

Еще раз спасибо!

+0

У больших интерфейсов, доступных по щелчку, будут фон? –

+0

Такова идея. в моем примере это просто сплошная коробка цвета. таким образом он выглядит как кнопка. Я обновил свой пост с изображением, чтобы лучше объяснить, что я пытаюсь сделать. – Klaven

+0

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

ответ

1

Используйте относительную компоновку в качестве корневого макета вместо линейного макета, который вы использовали. Это упростит управление другими макетами.

0

Не используйте RelativeLayout вообще. В соответствии с вашими требованиями. Макет таблицы с двумя рядами дает гораздо лучший результат. и он прост в использовании. Он не будет испортить ваш макет в разных размерах экрана.

+0

Это тоже не работает должным образом, я, похоже, не позволяю ему расширять весь путь до нижней части экрана. Я установил высоту макета для обертывания контента, но он все еще просто расширяет графику 9 патчей до конца. – Klaven

+0

Я создам ваш необходимый макет и опубликую его сам. –

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