LinearLayout с двумя детьми равной ширины

У меня возникли проблемы с получением двух детей LinearLayout с одинаковой шириной. Это то, что я получаю:

Скриншот

И вот мой макет xml для серой коробки:

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="2" android:background="@color/medium_grey" > <ImageView android:id="@+id/profile_photo" android:layout_width="0dp" android:layout_height="wrap_content" android:src="@drawable/placeholder_profile_photo" android:scaleType="fitCenter" android:contentDescription="@string/blank" android:layout_weight="1" /> <LinearLayout android:layout_width="0dp" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" android:layout_weight="1" android:layout_gravity="center_vertical" android:background="@color/alert" > <TextView android:id="@+id/profile_rate_header" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Rate User" /> <LinearLayout android:id="@+id/profile_action_rate_user" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight="1" android:gravity="center" > <ImageView android:id="@+id/profile_action_rate_up" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/user_rate_up" /> <ImageView android:id="@+id/profile_action_rate_down" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/user_rate_down" /> </LinearLayout> </LinearLayout> </LinearLayout> 

Я предполагал, что установка layout_weight из дочерних элементов корневого LinearLayout вместе с weightSum и шириной 0dp приведет к желаемому эффекту (изображение будет такого же размера, что и розовый «пользователь скорости»), однако это не так.

Что мне не хватает?

Редактировать:

Это то, что я хочу, чтобы это выглядело

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

Фотография и розовая линейная макет должны быть одинаковой ширины.

android:weightSum="2" должен быть у родителя двух изображений ImageViews, а не у верхнего родителя. Или попробуйте установить вес 0.5 и посмотреть, работает ли он.

Кроме того, при использовании таких весов ширина двух изображений должна быть android:layout_width="0dp" .

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

Одновременно взвешенные дети

Чтобы создать линейный макет, в котором каждый ребенок использует такое же пространство на экране, установите для android: layout_height каждого вида значение «0dp» (для вертикального макета) или андроид: layout_width каждого вида «0dp» ( Для горизонтальной компоновки). Затем установите для android: layout_weight каждого вида значение «1». См. http://developer.android.com/guide/topics/ui/layout/linear.html.

Удалите сумму веса из родительского вида ( @+id/profile_action_rate_user ).

Вы можете использовать что-то вроде этого, надеясь, что это будет соответствовать вашим требованиям. Попробуйте этот xml.

 <?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="wrap_content" android:orientation="horizontal" > <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:background="@color/Black" android:gravity="center" android:orientation="vertical" android:layout_weight="0.5" > <TextView android:id="@+id/profile_rate_header" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Rate User" /> <LinearLayout android:id="@+id/profile_action_rate_user" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" > <ImageView android:id="@+id/profile_action_rate_up" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/close" /> <ImageView android:id="@+id/profile_action_rate_down" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/close" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="0.5" android:orientation="vertical" > <ImageView android:id="@+id/profile_photo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="fitCenter" android:src="@drawable/close" /> </LinearLayout> </LinearLayout> </LinearLayout> 

Это вы хотите:

Попробуйте этот xml @boz: он будет работать во всех размерах макетов …!

 <?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" > <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight=".50" android:background="@drawable/ic_launcher" > </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight=".50" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="33.33" > </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="33.33" android:background="@android:color/darker_gray" > </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="33.33" > </LinearLayout> </LinearLayout> </LinearLayout> 

Я беру два линейных макета с (50%, 50%) и три дочерних линейных макета с (33,33%, 33,33%, 33,33%). Среди них три макета, второй макет – розово.

Если все еще какой-либо запрос, спросите plz.