2010-05-26 7 views
13

que estoy tratando de asignar anchuras relativas a las columnas en un ListView que está en un TabHost, utilizando layout_weight como se sugiere here:tema de diseño de Android - anchuras relativas en porcentaje utilizando el peso

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TabWidget android:id="@android:id/tabs" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"/> 
     <FrameLayout android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"> 
      <TableLayout 
       android:id="@+id/triplist" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:paddingTop="4px"> 
       <TableRow> 
       <ListView android:id="@+id/triplistview" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/> 
       </TableRow> 
       <TableRow> 
       <Button android:id="@+id/newtripbutton" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Add Trip"/> 
       </TableRow> 
[other tabs ...] 

Mi definición de fila tiene 4 columnas que me gustaría tamaño como sigue:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="1.0" 
    android:padding="4px"> 
    <TextView android:id="@+id/rowtripdate" 
     android:layout_weight=".2" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:inputType="date"/> 
    <TextView android:id="@+id/rowodostart" 
     android:layout_weight=".2" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content"/> 
    <TextView android:id="@+id/rowodoend" 
     android:layout_weight=".2" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content"/> 
    <TextView android:id="@+id/rowcomment" 
     android:layout_weight=".4" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content"> 

por desgracia, parece que quiere encajar todas las columnas en el espacio que la b utton ocupa, a diferencia del ancho de la pantalla. O tal vez hay otra restricción que no entiendo. Agradecería tu ayuda.

alt text http://heeroz.com/layoutprob.png

Respuesta

11

creo que se me olvidó esta propiedad para el elemento TableLayout:

android:stretchColumns="0" 

Parece estar trabajando ahora.

+7

Cambiaría de px a dip en tus diseños para admitir diferentes resoluciones de pantalla. –

1

no veo nada, obviamente equivocado en lo que están mostrando allí. Para obtener una mejor idea de lo que está sucediendo, puede probar el heirarchy viewer. Viene con el SDK. Te visualizará cuánto espacio está tomando cada una de las capas "ocultas", para que puedas decidir cuál decidió ser tan grande.

+0

Gracias por la pista. No había conocido esta herramienta. Descubrí que ListView (136px) no llena todo el ancho de la fila de la tabla (480px), pero ¿por qué es una pregunta diferente? 136px también pasa a ser el ancho del botón. – cdonner

Cuestiones relacionadas