Интерфейс Android: как совместить TextView и две радиокнопки, чтобы они занимали по 1/3 родительской части каждый? - PullRequest
1 голос
/ 25 ноября 2011

Я уверен, что это очень просто, и я просто глуп, но я перепробовал множество вариантов и до сих пор не могу заставить его работать. Что еще хуже - эти 3 компонента выровнены точно так, как я хочу в графическом редакторе в Eclipse, но не на реальном устройстве. Я только выровняю его на 50% для TextView и RadioGroup.

В настоящее время XML выглядит следующим образом (здесь я предположил, что RadioGroup является своего рода LinearLayout):

 <RadioGroup 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <TextView
                        style="@style/ButtonStyle"
                        android:layout_width="wrap_content"
                        android:text="@string/CC_Direction_caption" />
                <RadioButton
                    android:id="@+id/rb_toCamera"
                    style="@style/ButtonStyle"
                    android:text="@string/CC_Backwards_Caption" />
               <RadioButton
                    android:id="@+id/rb_toInfinity"
                    style="@style/ButtonStyle"
                    android:text="@string/CC_Forwards_Caption" />

 </RadioGroup>

И ButtonStyle:

<item name="android:layout_width">0dip</item>
<item name="android:layout_height">70dp</item>
<item name="android:layout_weight">1</item>

И все это внутри TableRow.

Ответы [ 4 ]

2 голосов
/ 02 мая 2014

Используйте android: layout_centerVertical = "true" в вашем TextView.

Ниже приведен пример:

             <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical" >

            <TextView
                android:id="@+id/typeLabel"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:text="GroupBox Label"
                android:textColor="@color/black"
                android:textSize="14dp" />

            <RadioGroup
                android:id="@+id/radioGroup"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@color/white"
                android:layout_alignParentRight="true"
                android:gravity="center"
                android:orientation="horizontal" >

                <RadioButton
                    android:id="@+id/button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="true"
                    android:text="Radio 1 Text"
                    android:textColor="@color/blue" />

                <RadioButton
                    android:id="@+id/button2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Radio 2 t"
                    android:textColor="@color/blue" />
            </RadioGroup>
    </RelativeLayout>
1 голос
/ 25 ноября 2011

Попробуйте добавить android:layout_weight="1" ко всем трем элементам. Это определяет относительный вес, который каждый элемент имеет к другим. Чем выше это значение, тем меньше вес элемента.

о, и оберните все в линейный макет (не видел, что вы сначала не добавили макет).

0 голосов
/ 25 ноября 2011

Попробуйте изменить layout_width на "wrap_content" для переключателей. Вы уже сделали это для текстового поля.

0 голосов
/ 25 ноября 2011

Вы должны использовать линейную компоновку с весами на ваших элементах, что позволит довольно легко достичь того, что вы хотите.

Проверьте документы для получения информации о линейной разметке и весах.

http://developer.android.com/guide/topics/ui/layout-objects.html

...