【问题标题】:Make TableRows even width使 TableRows 宽度均匀
【发布时间】:2013-04-15 10:45:47
【问题描述】:

下面是我的屏幕的样子:

您可以看到在第 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>

【问题讨论】:

    标签: java android width tablelayout tablerow


    【解决方案1】:

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

    【讨论】:

    • 这至少使第 1 行的两个按钮高度相同。但是所有 4 行的高度仍然不同。我已经用新代码和新屏幕截图更新了我的开场白。
    • @Matt 因为每个按钮的文本都不同,所以按钮的高度在某些设备上最终会有所不同,因为水平放置文本的空间会更少。如果您希望它们在每台设备上的高度完全相同,唯一真正的选择是将高度硬编码为某个 dp 值。
    • 所以没有办法看到第 3 行将具有最高高度,然后将第 1、2 和 4 行匹配为第 3 行的高度?
    【解决方案2】:

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

    另外,尽量避免使用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>
    

    【讨论】:

      猜你喜欢
      • 2012-09-29
      • 2016-05-02
      • 2017-11-22
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-31
      • 2015-02-03
      相关资源
      最近更新 更多