Я пытаюсь создать некоторые модульные элементы пользовательского интерфейса, как описано в Android Developers - Создание повторно используемых компонентов пользовательского интерфейса , к сожалению, я не получаю желаемого результата.В статье говорится:
вы можете переопределить все параметры макета.Это означает, что любой тег android: layout_ * может использоваться с тегом.
Мой XML-код выглядит следующим образом (соответствующие части):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include android:id="@+id/radio_group"
layout="@layout/radio_buttons"
android:layout_marginTop="75dp"
/>
<include android:id="@+id/player_group"
layout="@layout/player_buttons"
android:layout_alignParentBottom="true"
/>
<EditText android:id="@+id/text_field"
android:singleLine="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="Enter Your Login ID:"
android:layout_below="@id/player_group"
/>
Вот первый извключенные макеты:
<RadioGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/radio_group"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginBottom="20dp"
>
<RadioButton android:id="@+id/radio01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Song #1"
android:paddingLeft="45dp"
/>
[two more identical buttons]
<TextView android:id="@+id/choice"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="you have selected:"/>
</RadioGroup>
и другие:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button android:text="btn01"
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
/>
<Button android:text="@+id/Button02"
android:id="@+id/Button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
/>
<Button android:text="Start Playing"
android:id="@+id/startPlayerBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:onClick="doClick"
/>
</LinearLayout>
К сожалению - это приводит к тому, что все включенные элементы пользовательского интерфейса сгруппированы друг с другом в верхней части экрана.Элемент EditText выравнивается правильно, но ни один из включенных элементов не будет реагировать на любые переопределенные атрибуты.Я пробовал несколько разных с одинаковыми нерезультатами.
Примечание: я также попытался вставить параметр android:layout_alignParentBottom="true"
во включенные макеты, думая, что он может быть там, чтобы его можно было переопределить, но получил тот же не результат.
также - параметр marginTop тоже ничего не делает.
Итак - есть идеи, что я делаю неправильно ??Это сводит меня с ума!
Примечание: недавно был задан вопрос о том, как стилизовать включенные макеты, ответом была ссылка на страницу многократно используемых компонентов пользовательского интерфейса.Просто хочу сказать, что я прочитал этот вопрос и ответ, и это не помогло.