2010-06-01 18 views
6

Tengo problemas para colocar los elementos de diseño. El Autocompletar en mi TableLayout y el botón después de expandir el TableRow es más grande que el ancho de la pantalla. ¿Alguien tiene una idea de por qué? A continuación se muestra mi código XML, así como una imagen del problema.Android - Elementos de IU que se apagan

Gracias de antemano!

<?xml version="1.0" encoding="utf-8"?> 

<TableRow android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <AutoCompleteTextView android:id="@+id/installation" 
     android:textSize="14sp" android:completionThreshold="3" /> 
</TableRow> 
<TableRow android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <Button android:id="@+id/btn_find" android:text="@string/btn_find"></Button> 
</TableRow> 
<TableRow android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView android:id="@+id/error" android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:paddingTop="20px" 
     android:textColor="#FF0000" /> 
</TableRow> 

Picture of UI

+0

¿También se ve así en un dispositivo real? –

Respuesta

5

Por defecto, los widgets en un TableRow tienen android:layout_width="wrap_content". Eso no te limita al tamaño de la pantalla: wrap_content significa "ajustar el contenido", no "ajustar el contenido, pero no te vayas del borde de la pantalla, si no te molesta".

En este caso, no necesita usar un TableLayout y un conjunto de TableRows, ya que no tiene una tabla.

Entonces, un enfoque es usar un RelativeLayout y tener su AutoCompleteTextView usar android:layout_alignParentLeft="true" y android:layout_alignParentRight="true". Eso lo fijará a los bordes exteriores del RelativeLayout, que puede clasificar con android:layout_width=fill_parent para llenar la pantalla.

+0

Lo sentimos, el código de la tabla se eliminó. Tengo un TableLayout definido, con la orientación establecida en vertical y fill_parent para layout_width y layout_height. ¿Algunas ideas? – Ryan

+1

Mis ideas están arriba. Si no hace algo para decirle a AutoCompleteTextView que se mantenga dentro de los límites de la pantalla, no permanecerá dentro de los límites de la pantalla. Una forma de hacerlo es con 'RelativeLayout' como describí anteriormente. – CommonsWare

+0

¡No importa, esto ayudó mucho! Parece haber funcionado :) ¡Gracias! – Ryan

38

Para los que sí necesitan el diseño de la tabla, use la opción layout_weight. Vea el código a continuación.

 <TableLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:padding="6sp" android:id="@+id/detailsLayout"> 
      <TableRow 
       android:layout_width="wrap_content" 
       android:id="@+id/TableRow03" 
       android:layout_height="wrap_content"> 
       <TextView 
        android:id="@+id/TextView06" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="Detail 1"></TextView> 
       <TextView 
        android:text="@string/empty_value" 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:id="@+id/sessionAudience" 
        android:layout_weight="1"></TextView> 
      </TableRow> 
     </TableLayout> 
+0

¡funciona! gracias ... – Irshu

+0

Impresionante ... Esto funciona muy bien. Vota por eso. –

Cuestiones relacionadas