android:如何强制TableRows具有相同的高度?

时间:2013-02-28 14:14:15

标签: android layout height tablelayout tablerow

我已经彻底搜索了google和stackoverflow,但我得到的唯一答案是:用Tablerow设置每个layout weight = "1"。这不起作用。

现在我在TableLayout中有八行,每行包含5 LinearLayouts。每个LinearLayouts包含2个TextViewsFontSizesTextViewTextView不等。

事实证明,TableRows的高度不同,具体取决于所包含的TextViews的字体大小。 奇怪的是,无论我将TableRows的layout_height设置为“0dp”还是“match_parent”或“fill_parent”,它对布局都没有任何影响。

如何强制TableRows具有相同的高度?我不想使用特定的pts值作为高度,因为tableRows必须在整个屏幕之间平均分配。

这是xml的一部分,实际文件很大:

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="6"
    android:weightSum="8"
    tools:context=".MainActivity" >

    <TableRow
        android:layout_width="match_parent"
        android:layout_weight="1"
        tools:context=".MainActivity">

        <LinearLayout
            android:clickable="true"
            android:orientation="vertical"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginTop="@dimen/btnmargintop"
            android:layout_marginBottom="@dimen/btnmarginbot"
            android:layout_marginLeft="@dimen/btnmarginleft"
            android:layout_marginRight="@dimen/btnmarginright"
            android:layout_weight="1"
            android:background="@drawable/bg" >

            <myapp.TypefacedTextView
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_weight="@integer/layoutweight1"
                android:layout_gravity="center"
                stevens:typeface="myfont.otf"
                android:clickable="false"
                android:textSize="@dimen/fontsize1" />
            <myapp.TypefacedTextView
                android:layout_width="wrap_content"
                android:layout_height="0dp"
                android:layout_weight="@integer/layoutweight2"
                android:layout_gravity="center"
                stevens:typeface="myfont.otf"
                android:clickable="false"
                android:textSize="@dimen/fontsize2" />              
        </LinearLayout>

1 个答案:

答案 0 :(得分:0)

您可能会让标签的布局自动调整为内容的大小。解决问题的方法有两种:

  • 确保所有元素共享相同的大小 - 就是说,不要担心整个表格,只要确保内部元素的尺寸相同
  • 或者只是设置父布局的高度,不要让元素产生影响。这个解决方案的问题是,如果你内部变大,你就会没有空间,所以你可能想要坚持使用第一个选项