Установка отношения ширины в относительной компоновке

Я довольно новичок в форматах Android.

Im пытается установить Age: EditText: Год в соотношении 1: 3: 1 и тот же размер по высоте.

Должен ли я использовать TableLayout? Если да, то как я могу запретить TableRow1 изменять ширину и т. Д., Когда я делаю некоторые вещи в других строках?

Введите описание изображения здесь

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/relative_layout" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/txtAge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/search_text" android:layout_alignBottom="@+id/search_text" android:layout_alignParentLeft="true" android:text="Age" android:layout_weight="0.3" android:textAppearance="?android:attr/textAppearanceLarge" /> <TextView android:id="@+id/txtYears" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/search_text" android:layout_alignBottom="@+id/search_text" android:layout_alignParentRight="true" android:text="Years" android:layout_weight="0.3" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/search_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_toLeftOf="@id/txtYears" android:layout_toRightOf="@id/txtAge" android:ems="10" android:hint="Enter your age" android:inputType="text|number" android:lines="1" android:layout_weight="0.7" android:maxLength="2" android:maxLines="1" /> <TextView android:id="@+id/txtHeight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignBaseline="@+id/enterHeight" android:layout_below="@+id/search_text" android:text="Height" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_weight="1"/> <Spinner android:id="@+id/spinHeight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@+id/txtHeight" android:layout_weight="1" /> <EditText android:id="@+id/enterHeight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/search_text" android:layout_toLeftOf="@+id/spinHeight" android:layout_toRightOf="@+id/txtHeight" android:ems="10" android:hint="Enter your height" android:inputType="text|number" android:lines="1" android:layout_weight="3" android:maxLength="3" android:maxLines="1" > <requestFocus /> </EditText> </RelativeLayout> 

Я думаю, это то, что вы хотите. См. Изображение ниже.

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal" android:weightSum="100" > <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="20" android:gravity="center_vertical|center_horizontal" android:text="Age" android:textColor="#FFF" android:textSize="16sp" android:textStyle="bold" /> <EditText android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="60" /> <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="20" android:gravity="center_vertical|center_horizontal" android:text="Years" android:textColor="#FFF" android:textSize="16sp" android:textStyle="bold" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal" android:weightSum="100" > <TextView android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="20" android:gravity="center_vertical|center_horizontal" android:text="Height" android:textColor="#FFF" android:textSize="16sp" android:textStyle="bold" /> <EditText android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="60" /> <Spinner android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="20" /> </LinearLayout> </LinearLayout> 

Введите описание изображения здесь

Я думаю, вы должны использовать линейный layout.you можете установить android:weightSum="10" свойства.

Его общая схема. Теперь вы должны установить для охлажденного объекта с помощью android:layout_weight="2" .

Таким образом, вы будете контролировать свой объект в макете.

 <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_marginLeft="5dp" android:layout_weight="2" android:text="Age" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="6" > </EditText> <TextView android:id="@+id/textView1" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_marginRight="5dp" android:layout_weight="2" android:text="Years" /> 

Есть что-то вроде этого. Псевдокод не проверен ..

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/relative_layout" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:gravity = "center_horizontal" android:id="@+id/firstLinearLayout" android:orientation = "horizontal" android:weightSum="10"> <TextView android:weight = "2" /> <TextView android:weight = "6" /> <EditText android:weight = "2" /> </LinearLayout> <LinearLayout android:gravity = "center_horizontal" android:layout_below="@id/loginButtonLayout" android:orientation = "horizontal" android:weightSum="10"> </LinearLayout>