2012-07-22 12 views
9

He escrito un código XML, donde quiero que EditText se expanda para ajustarse al ancho principal. Después de pasar tanto tiempo, no puedo encontrar una manera de expandir EditText.Por qué EditText no se está expandiendo a fill_parent

Aquí es 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.

Respuesta

2

Agregue un colomn adicional de TextView en cada fila.

Este código puede ayudarlo.

<?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> 
1

No estoy seguro si es grave.

Usted tiene anchura mínima de su EditarTexto (minWidth) establece grande de lo que es la anchura máxima (maxWidth), y no se ha dado un atributo layout_width (que se debe configurar el match_parent).

+0

he dado un layout_width a match_parent, pero nada está cambiando. – user1462473

+0

Elimina también los atributos 'maxWidth' y' minWidth'. – kcoppock

0

creo que se echa en falta el atributo android:orientation del LinearLayout

En segundo lugar, si esto es todo lo que necesita, puede evitar el uso de un TableLayout y utilizar sólo una sola LinearLayout con android:orientation="vertical" y todas las otras tres View s en eso.

+0

El 'android: orientation' no es obligatorio. Por defecto es 'horizontal' de acuerdo con http://developer.android.com/reference/android/widget/LinearLayout.html. –

8

Un poco viejo, pero creo que tengo algo que agregar.

Creo que, de acuerdo con la documentación (que se cita a continuación), layout_width y layout_height están predeterminados para todos los elementos secundarios de TableRow.

En su lugar, el layout_weight se puede utilizar para determinar el ancho/alto de los elementos dentro de un TableRow. Es decir, a menos que desee establecer su propiedad android: ems 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í una gran EditarTexto de pantalla completa dentro de un TableRow.

Aquí es una cita de la documentation de TableRow:

Los hijos de un TableRow no necesitan especificar el layout_width y layout_height atributos en el archivo XML. TableRow siempre impone esos valores para ser respectivamente MATCH_PARENT y WRAP_CONTENT.

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

0

puede usar layout_weight="1" en edittextview.

6

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

+0

¡Impresionante! ¡¡Esto es perfecto para mí!! Gracias – arttioz

0

<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" >

Cuestiones relacionadas