使TableRows均匀宽度

时间:2013-04-22 13:44:38

标签: java android width tablelayout tablerow

以下是我的屏幕:

enter image description here

你可以看到在第1行中,两个按钮没有均匀对齐,因为右边的框是2行而左边的框是1行。此外,您可以在第3行看到按钮更宽,因为它们都是3行。

有没有办法让行高度相同?有点像LinearLayout中您可以使用android:layout_width="#"的方式。我已经在XML中发布了所有代码,因为它相对较短。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relativelayout"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="1dp"
    android:paddingBottom="50dp"
    android:background="@drawable/scroll" >

    <TextView
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="14sp"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:paddingTop="65dp" />

    <TextView
        android:id="@+id/subHeader"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/header"
        android:textStyle="italic|bold"
        android:textSize="12sp"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:paddingBottom="20dp" />

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/subHeader"
        android:layout_alignParentBottom="true"
        android:background="@drawable/scrollviewborder"
        android:fillViewport="true"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:paddingTop="8dp"
        android:paddingBottom="8dp" >

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/jc" 
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textSize="14sp" />

            <Button 
                android:id="@+id/tencommandments"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textSize="14sp" />
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/exodus" 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textSize="14sp" />

            <Button
                android:id="@+id/genesis" 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textSize="14sp" />
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/holydays" 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textSize="14sp" />      

            <Button
                android:id="@+id/facts" 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textSize="14sp" />
        </TableRow>

        <TableRow
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <Button
                android:id="@+id/random" 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textSize="14sp" />
        </TableRow>
    </TableLayout>
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

尝试将ID为android:layout_height="wrap_content"的按钮中的match_parent更改为jc

答案 1 :(得分:1)

这是你的布局,重做。你将要添加引用你的drawables的行 - 我把它们拿出来,因为我没有访问它们。注意权重值是如何分数的,并根据该空间的百分比来考虑容器内小部件可用的空间量。这种范式转换应该提升您对权重属性的理解。

此外,请尽量避免使用fill_parent,在API 8及更高版本中已弃用match_parent,除非您真的想要支持旧的,发霉的Android版本(不到1%)已安装的基地)。

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relativelayout"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="1dp"
    android:paddingBottom="50dp" >

    <TextView
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="14sp"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:paddingTop="65dp" />

    <TextView
        android:id="@+id/subHeader"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/header"
        android:textStyle="italic|bold"
        android:textSize="12sp"
        android:layout_centerHorizontal="true"
        android:gravity="center"
        android:paddingBottom="20dp" />

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/subHeader"
        android:layout_alignParentBottom="true"
        android:fillViewport="true"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:paddingTop="8dp"
        android:paddingBottom="8dp" >

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight=".25" >

            <Button
                android:id="@+id/jc" 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:textStyle="bold"
                android:textSize="14sp" />

            <Button 
                android:id="@+id/tencommandments"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:textStyle="bold"
                android:textSize="14sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight=".25" >

            <Button
                android:id="@+id/exodus" 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:textStyle="bold"
                android:textSize="14sp" />

            <Button
                android:id="@+id/genesis" 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:textStyle="bold"
                android:textSize="14sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight=".25" >

            <Button
                android:id="@+id/holydays" 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:textStyle="bold"
                android:textSize="14sp" />      

            <Button
                android:id="@+id/facts" 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight=".5"
                android:textStyle="bold"
                android:textSize="14sp" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight=".25" >

            <Button
                android:id="@+id/random" 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:textStyle="bold"
                android:textSize="14sp" />
        </TableRow>
    </TableLayout>
</RelativeLayout>