Проблема с шириной заполнения LinearLayout для Android

Мне интересно, почему это происходит:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:gravity="center_vertical" android:layout_height="wrap_content" android:layout_gravity="top" android:background="@drawable/gradient" android:focusable="true" android:paddingTop="5dip" android:paddingBottom="5dip" android:focusableInTouchMode="true"> <EditText android:id="@+id/searchField" android:layout_width="wrap_content" android:layout_height="fill_parent" android:paddingTop="2dip" android:paddingBottom="2dip" android:paddingLeft="10dip" android:paddingRight="10dip" android:inputType="textVisiblePassword" android:radius="5dip" android:layout_marginLeft="10dip" android:background="@drawable/search_background" android:textColor="#000000" /> <Button android:id="@+id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:background="@drawable/info_btn" /> </LinearLayout> 

Если я установил «fill_parent» в layout_width моего EditText, он принимает всю ширину родителя, и кнопка исчезает (я думаю, что она скрыта под EditText).

Может ли кто-нибудь объяснить мне, пожалуйста? Я бы хотел, чтобы кнопка имела собственную ширину, а EditText занимает оставшуюся ширину.

Заранее спасибо !

Вы указываете EditText на fill_parent, поэтому он заполняет экран (вся ширина, не оставляя места для вашей кнопки).

Вы хотите, чтобы кнопка обертывала содержимое и текст редактирования, чтобы заполнить остаток, вы можете сделать это с помощью свойства layout_weight:

 <?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" android:layout_gravity="top" android:gravity="center_vertical" android:paddingTop="5dip" android:paddingBottom="5dip" android:orientation="horizontal"> <EditText android:id="@+id/searchField" android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1" android:layout_marginLeft="10dip" android:paddingTop="2dip" android:paddingBottom="2dip" android:paddingLeft="10dip" android:paddingRight="10dip" android:radius="5dip" android:inputType="textVisiblePassword" android:textColor="#000000" /> <Button android:id="@+id/info" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:text="Blah" /> </LinearLayout> 

(Я взял ваши исчерпывающие ссылки, чтобы сделать его общим для других людей)

На стороне, чтобы не сделать ваш XML-образ красивым и аккуратным в eclipse:

Окно> Настройки> XML> Файлы XML> Редактор

Ширина линии 120

Разделить несколько атрибутов TICK

Выровнять конечную скобку UNTICK

Сохранять пробельные метки в PCDATA UNTICK

Очистить все пустые строки UNTICK

Вставить пробел перед закрытием TICK

Нажмите ОК

Затем вы можете исправить свои XML-файлы, когда у вас есть файл XML, открытый CTRL + A, тогда CTRL + SHIFT + F будет отформатировать его красиво!