Полей EditText не заполните оставшееся пространство
поэтому у меня есть этот textview "To", edittext для ввода контакта и кнопка поиска для поиска контактов в одной строке. Textview и button все в хорошем месте, но проблема в том, что edittext мал, я хочу, чтобы он занимал все оставшиеся места. Вот код:
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To: "
android:textColor="#000000"
android:paddingTop="10dp"
android:layout_toLeftOf="@+id/editText_recipient"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"/>
<EditText
android:id="@+id/editText_recipient"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:hint="Enter Number"
android:inputType="number"
android:textSize="12sp"
android:layout_toLeftOf="@+id/button_recipient_picker"
android:layout_marginLeft="5dp"/>
<Button
android:id="@+id/button_recipient_picker"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Browse .."
android:layout_alignParentRight="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:onClick="doLaunchContactPicker"/>
</RelativeLayout>
2 ответов
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:paddingTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To: "
android:textColor="#000000"
android:paddingTop="10dp"
android:layout_marginLeft="10dp"/>
<EditText
android:id="@+id/editText_recipient"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:hint="Enter Number"
android:inputType="number"
android:textSize="12sp"
android:layout_marginLeft="5dp"
android:layout_weight="1"
/>
<Button
android:id="@+id/button_recipient_picker"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Browse .."
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:onClick="doLaunchContactPicker"/>
</LinearLayout>
используйте этот макет, я преобразовал ваш макет в линейный (горизонтальный по умолчанию). и добавил layout_weight в editText, он займет оставшееся пространство.
для тех, кто нуждается в ответе на это и решить этот пост, не давая альтернативу, ответ довольно прост.
Вам нужно сказать каждому элементу управления, где расположить друг друга и применить к элементу управления, который должен занять свободное пространство android:layout_width = "match_parent"
, хотя в LinearLayout, это будет выталкивать все остальные элементы управления, выровненные из экрана, в RelativeLayout работает отлично
<RelativeLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:paddingTop="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="To: "
android:textColor="#000000"
android:paddingTop="10dp"
android:layout_toLeftOf="@+id/editText_recipient"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"/>
<EditText
android:id="@+id/editText_recipient"
android:layout_height="wrap_content"
android:layout_width="MATCH_PARENT"
android:hint="Enter number"
android:inputType="number"
android:textSize="12sp"
android:layout_toLeftOf="@+id/button_recipient_picker"
android:layout_marginLeft="5dp"/>
<Button
android:id="@+id/button_recipient_picker"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Browse .."
android:layout_alignParentRight="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:onClick="doLaunchContactPicker"/>
</RelativeLayout>