2011-04-23 20 views
10

Me gustaría saber cómo puedo aumentar la altura de la fila de la tabla para que se vea proporcional en los tamaños de pantalla más grandes. Actualmente, todas las textviews y edittexts (colocadas en filas de tablas) aparecen en el lado izquierdo de la pantalla en lugar de ocupar toda la pantalla (solo en tamaños de pantalla más grandes). Aquí es el xml estoy trabajando con:¿Cómo aumentar la altura de la fila de la tabla según las pantallas?

<ScrollView android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">  

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 

    android:layout_height="fill_parent" android:background="@color/black_background"> 

<TableLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    > 
    <TableRow android:id="@+id/TableRow01" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" > 


    <TextView android:id="@+id/name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="20sp" 
      android:textColor="@color/white" 
      android:visibility="visible" 
      android:text="@string/Name" 
      android:layout_weight="0.2" 
      android:layout_marginLeft="20dp" 
      android:layout_marginTop="22dp"/> 

<EditText android:id="@+id/myName" 
      android:layout_width="120dip" 
      android:layout_height="wrap_content" 
      android:textSize="20sp" 
      android:visibility="visible" 
      android:layout_weight="0.3" 
      android:inputType="number" 
      android:textColor="@color/black_background" 
      android:layout_marginLeft="10dp" 
      android:layout_marginTop="10dp"/> 

<TextView android:id="@+id/error1" 
       android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="18sp" 
      android:textColor="@color/red" 
      android:visibility="visible" 
      android:layout_weight="0.5"/> 

    </TableRow> 
<TableRow android:id="@+id/TableRow02" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"> 


    <TextView android:id="@+id/address" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textSize="20sp" 
      android:visibility="visible" 
      android:textColor="@color/white" 
      android:text="@string/address" 
      android:layout_weight="0.2" 
      android:layout_marginLeft="20dp" android:layout_marginTop="22dp"/> 

<EditText android:id="@+id/address" 
      android:layout_width="120dip" 
      android:layout_height="wrap_content" 
      android:textSize="20sp" 
      android:visibility="visible" 
      android:inputType="number" 
      android:textColor="@color/black_background" 
      android:layout_weight="0.8" 
      android:layout_marginLeft="10dp" android:layout_marginTop="10dp"/> 

    </TableRow> 
</TableLayout>   

    </LinearLayout> 
</ScrollView> 

Respuesta

6

Por favor, vaya a través de este enlace, creo que le ayudará a cabo. http://developerlife.com/tutorials/?p=307

Tenga en cuenta que los hijos de un TableLayout no pueden especificar su anchura - que siempre es FILL_PARENT. Sin embargo, la altura puede ser definida por un niño, que por defecto es WRAP_CONTENT. Si el hijo es un TableRow, entonces la altura siempre es WRAP_CONTENT.

tanto, si utiliza TableLayout con TableRows realmente no se puede no se puede establecer la anchura/altura (width=FILL_PARENT y height=WRAP_CONTENT).

Por cierto, un TableRow es solo una subclase de LinearLayout. Lo que puede hacer es especificar el comportamiento de la columna para encoger y/o estirar o no. También puede ocultar una columna llamando a setColumnCollapsed en TableLayout y pasándole el índice de columna. Todos los índices de columna comienzan en 0 y puede tener columnas vacías.

4

Puedes simplemente usar android: layout_weight. En el siguiente código, por ejemplo, el botón izquierdo es el doble de grande que el botón derecho:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> 
    <Button android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" 
      android:text="hai" /> 
    <Button android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2" 
      android:text="longer sentence" /> 
</LinearLayout> 
21

Uso

android:minHeight="60px" 

En TableRow etiqueta

<TableRow android:id="@+id/task1" android:layout_width="fill_parent" 
      android:minHeight="60px" android:layout_height="wrap_content"> 
+1

'minHeight' funciona ... ¡gracias! –

0

Puede aplicar android:layout_weight a TableRow y dar el mismo valor a todas las filas de la tabla. Las filas de la tabla se distribuirán en el espacio restante del diseño lineal.

Asegurar, que ha establecido a continuación atributos a TableLayout

android:layout_width="match_parent" 
android:layout_height="match_parent" 
1

Puede configurar el android:layout_weight de cada TableRow a 1. A continuación, cambiar la altura de TableLayout como desee. ¡Funciona bien para mí!

android:layout_weight="1" 
2

Añadir esta propiedad a sus todos TableRow s:

android:layout_height = "0dp" 
android:layout_weight = "1" 

Esto se extiende a todas sus TableRow s para ocupar la altura de los padres en general.

+0

Esta solución funciona para mí. –

Cuestiones relacionadas