Полей 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>