Отрегулируйте ширину до половины экрана.

Я наткнулся на эту ссылку:

Назначьте ширину до половины ширины доступного экрана декларативно

Как сделать то же самое в относительной компоновке? Вот код: Trying linearlayout внутри относительной компоновки. Но это не работает.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/bg" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <Button android:id="@+id/button5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="14dp" android:layout_weight="1" android:text="Button" /> <Button android:id="@+id/button6" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:layout_weight="1" android:text="Button" /> <Button android:id="@+id/button4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_weight="1" android:text="UID" android:textColor="#ffe5f1f1" /> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="#ffe5f1f1" android:hint="Enter UID" android:inputType="number" android:shadowColor="5" android:textColor="#ff009999" android:textStyle="bold" android:typeface="monospace" > <requestFocus /> </EditText> <Button android:id="@+id/button7" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_alignParentLeft="true" android:layout_marginTop="18dp" android:text="Button" /> <Button android:id="@+id/button8" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/button7" android:layout_weight="1" android:layout_marginTop="16dp" android:text="Button" /> <Button android:id="@+id/button9" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_alignParentLeft="true" android:layout_below="@+id/button8" android:layout_marginTop="17dp" android:text="Button" /> <EditText android:id="@+id/editText2" android:layout_width="50" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_weight="1" android:background="#ffe5f1f1" android:ems="10" android:hint="Enter Name" android:inputType="number" android:inputType="textPersonName" android:textColor="#ff009999" android:textStyle="bold" android:layout_weight="1" android:typeface="monospace" /> <EditText android:id="@+id/editText3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:ems="10" android:layout_weight="1" android:inputType="number" /> <EditText android:id="@+id/editText4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button7" android:layout_alignBottom="@+id/button7" android:layout_alignParentRight="true" android:ems="10" android:layout_weight="1" android:inputType="phone" /> <EditText android:id="@+id/editText5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button8" android:layout_alignBottom="@+id/button8" android:layout_alignParentRight="true" android:ems="10" android:layout_weight="1" android:inputType="textPersonName" /> <RadioButton android:id="@+id/radioButton2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button9" android:layout_alignBottom="@+id/button9" android:layout_alignLeft="@+id/editText5" android:layout_weight="1" android:text="Male" /> <RadioButton android:id="@+id/radioButton1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/radioButton2" android:layout_alignBottom="@+id/radioButton2" android:layout_alignParentRight="true" android:layout_weight="1" android:text="Female" /> <Button android:id="@+id/button10" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/button9" android:layout_marginTop="31dp" android:layout_weight="1" android:text="Button" /> <Spinner android:id="@+id/spinDept" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button10" android:layout_alignBottom="@+id/button10" android:layout_alignLeft="@+id/radioButton2" android:layout_alignParentRight="true" android:layout_weight="1" android:background="#ff009999" /> </LinearLayout> </RelativeLayout> 

Solutions Collecting From Web of "Отрегулируйте ширину до половины экрана."

Это хороший обходной путь, если вам нужна половина, при использовании RelativeLayout. Что вы делаете, создайте поддельный невидимый вид, ориентированный на родителя, и оставите кнопку alignParentLeft и alignRight с этим поддельным представлением и правой кнопкой наоборот

 <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content"> <View android:id="@+id/fakeView" android:layout_width="0dp" android:layout_height="0dp" android:layout_centerInParent="true"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@id/fakeView" android:layout_alignParentLeft="true" android:text="Left"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@id/fakeView" android:layout_alignParentRight="true" android:text="Right"/> </RelativeLayout> 

Это действительно умно.

Оберните то же самое с относительной компоновкой, которая должна работать для вас.

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="somebutton"> <TextView android:layout_width="fill_parent" android:layout_height="Wrap_content" android:layout_weight="1"> </LinearLayout> 

В дополнение к ответу urSus лучше использовать класс Space вместо View :

  <Space android:id="@+id/fakeView" android:layout_width="0dp" android:layout_height="0dp" android:layout_centerInParent="true"/> 
  Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); plannerEditLayout = (RelativeLayout) findViewById(R.id.plannerLayoutEdit); plannerEditLayout.setGravity(Gravity.CENTER_VERTICAL); plannerEditLayout.setLayoutParams(new RelativeLayout.LayoutParams( (width / 2), height)); 

Я использую тот же код для LinearLayout. Havent попробовал myslef для RelativeLayout. Дать ему шанс. Комментарий, если он не работает.

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="match_parent" android:id="@+id/button" android:layout_height="wrap_content" android:layout_weight="1" android:text="somebutton"> <TextView android:layout_width="match_parent" android:id="@+id/textview" android:layout_height="Wrap_content" android:layout_weight="1"> </LinearLayout> 

В приведенном выше примере используется LinearLayout, установите виджет layout_width в «match_parent» и укажите вес (чтобы указать область, которая будет занимать).

Это решает вашу проблему.