Por qué EditText no se está expandiendo a fill_parent

He escrito un código XML, donde quiero que el EditText para ser ampliado para ajustarse al ancho de los padres. Después de pasar tanto tiempo, no puedo encontrar una manera de expandir el EditText.

Aquí está mi XML:

<?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="fill_parent"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip"> <TextView android:text="Comment" android:layout_width="match_parent" android:textStyle="bold" android:padding="3dip" /> </TableRow> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip"> <EditText android:id="@+id/EditText02" android:layout_height="wrap_content" android:lines="5" android:gravity="top|left" android:inputType="textMultiLine" android:scrollHorizontally="false" android:minWidth="10.0dip" android:maxWidth="5.0dip"/> </TableRow> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip" android:gravity="center"> <Button android:id="@+id/cancel" android:text="Next" /> </TableRow> </TableLayout> </LinearLayout> 

Lo que he hecho mal aquí. Por favor, ayúdame.

7 Solutions collect form web for “Por qué EditText no se está expandiendo a fill_parent”

Agregue un colomn adicional de TextView en cada fila.

Este código puede ayudarle.

 <?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="fill_parent"> <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="1" android:orientation="vertical"> <TableRow android:layout_width="fill_parent" android:layout_marginLeft="10dp" android:layout_marginBottom="15dip"> <TextView android:text="" /> <TextView android:text="Comment" android:layout_width="match_parent" android:layout_marginRight="10dp" android:textStyle="bold" android:padding="3dip" /> </TableRow> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip"> <TextView android:text="" /> <EditText android:id="@+id/EditText02" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginRight="20dp" android:lines="5" android:gravity="top|left" android:inputType="textMultiLine" android:scrollHorizontally="false" /> </TableRow> <TableRow android:layout_marginLeft="10dp" android:layout_marginBottom="15dip" android:gravity="center"> <TextView android:text="" /> <Button android:id="@+id/cancel" android:layout_marginRight="10dp" android:text="Next" /> </TableRow> </TableLayout> </LinearLayout> 

Tipo de viejo, pero creo que tengo algo que añadir.

Creo que según la documentación (citada a continuación) layout_width y layout_height están predeterminados para todos los niños de TableRow.

En su lugar, el layout_weight se puede utilizar para determinar el ancho / altura de los elementos dentro de un TableRow. Es decir, a menos que desee establecer su android: ems propiedad y darle un ancho basado en su tamaño de fuente.

Por ejemplo:

 <TableRow android:id="@+id/tableRow1" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" > <EditText android:id="@+id/editText1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:hint="@string/place" android:inputType="textPersonName" > <requestFocus /> </EditText> </TableRow> 

Esto produjo para mí un EditText de pantalla completa dentro de un TableRow.

He aquí una cita de la documentación de TableRow:

Los hijos de un TableRow no necesitan especificar los atributos layout_width y layout_height en el archivo XML. TableRow siempre hace que estos valores sean respectivamente MATCH_PARENT y WRAP_CONTENT.

El problema es, como sabemos, que en realidad no sucede. Sospecho que layout_width recibe "WRAP_CONTENT" también.

Por favor, agregue android:stretchColumns="0" a su TableLayout

No estoy seguro de si es grave.

Tienes el ancho mínimo de minWidth ( minWidth ) establecido más grande que su anchura máxima ( maxWidth ), y no le has dado un atributo layout_width (que deberías establecer en match_parent ).

Creo que le falta el atributo de android:orientation de LinearLayout

En segundo lugar, si esto es todo lo que necesita, puede evitar el uso de TableLayout y utilizar sólo un LinearLayout único con android:orientation="vertical" y todos los otros tres View s en el mismo.

Puede usar layout_weight="1" en edittextview.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/back" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" -->> change to 0dip android:paddingRight="@dimen/activity_horizontal_margin" -->> change to 0dip android:paddingTop="@dimen/activity_vertical_margin" tools:context=".StartUp" >

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.