2010-05-26 128 views
13

我试图分配相对宽度的列在ListView是在TabHost,使用layout_weight百分比相对宽度的建议​​:Android的布局问题 - 使用重量

<?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 ...] 

我行定义有4列我想尺寸如下:

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

不幸的是,它似乎想所有列融入空间的b utton占据,而不是屏幕的宽度。或者,也许还有另一个我不明白的限制。我会很感激你的帮助。

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

回答

11

我想我忘了这个属性为TableLayout元素:

android:stretchColumns="0" 

这似乎是现在的工作。

+7

我会从px更改为在您的布局中下降以支持不同的屏幕分辨率。 – 2010-05-26 20:53:01

1

我看不出有什么明显的错误在你所展示那里。为了更好地了解正在发生的事情,您可以尝试heirarchy viewer。它随SDK提供。它会为你展示每个“隐藏”图层占用了多少空间,因此你可以确定哪一个只有那么大。

+0

感谢您的提示。我不知道这个工具。我发现ListView(136px)不会填充表格行(480px)的整个宽度,但为什么是一个不同的问题。 136px也恰好是按钮的宽度。 – cdonner 2010-05-26 17:31:37