【问题标题】:Does TableLayout have Borders?TableLayout 有边框吗?
【发布时间】:2011-06-21 09:27:30
【问题描述】:

我正在开发一个 droid 应用程序,我正在使用 TableLayout 但无法让它看起来像我想要的那样。我想要 2 列,一列用于文本,一列用于货币价值,但我无法使它们居中(在表格中)并彼此相邻显示。

我正在努力让它看起来像这样......

http://s2.postimage.org/8wpons46m/whmcs.png

但由于我实际上看不到边界,所以我不知道如何修复它。这就是它目前的样子......

这是我的表格的 XML 布局

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:stretchColumns="0"
    android:background="@drawable/round_table">

    <TableRow>
        <TextView
            android:layout_column="1"
            android:text="Today's Income:"
            android:typeface="sans"
            android:textSize="10sp"
            android:textColor="#000000"
            android:gravity="center"
            android:layout_width="0dip"
            android:padding="3dip" />
        <TextView
            android:text="$0.00 USD"
            android:typeface="sans"
            android:textSize="10sp"
            android:textColor="#000000"
            android:gravity="center"
            android:padding="3dip" />
    </TableRow>

    <View
        android:layout_height="2dip"
        android:background="#000000" />

    <TableRow>
        <TextView
            android:layout_column="1"
            android:text="Monthly Income:"
            android:typeface="sans"
            android:textSize="10sp"
            android:textColor="#000000"
            android:gravity="center"
            android:padding="3dip" />
        <TextView
            android:text="$0.00 USD"
            android:typeface="sans"
            android:textSize="10sp"
            android:textColor="#000000"
            android:gravity="center"
            android:padding="3dip" />
    </TableRow>

    <View
        android:layout_height="2dip"
        android:background="#000000" />

    <TableRow>
        <TextView
            android:layout_column="1"
            android:text="Annual Income:"
            android:typeface="sans"
            android:textSize="10sp"
            android:textColor="#000000"
            android:gravity="center"
            android:padding="3dip" />
        <TextView
            android:text="$0.00 USD"
            android:typeface="sans"
            android:textSize="10sp"
            android:textColor="#000000"
            android:gravity="center"
            android:padding="3dip" />
    </TableRow>

</TableLayout>

【问题讨论】:

  • 仅出于诊断目的,您可以为每个 TableRow 中的视图设置不同的背景颜色。
  • 啊,帮助很大。因为我的 TableLayout 宽度是 fill_parent,所以看起来有第三列只是填充了其余的空间。有什么方法可以将每个 TextView 的宽度指定为表格宽度的 50%?我在搜索结果时运气不佳

标签: android android-layout tablelayout


【解决方案1】:

使用 layout_weight,下面代码行中的内容应该可以满足您的目的。

<TableRow>
    <TextView
        android:text="Today's Income:"
        android:typeface="sans"
        android:textSize="10sp"
        android:textColor="#000000"
        android:gravity="right"
        android:layout_weight="0.6"
        android:padding="3dip" />
    <TextView
        android:text="$0.00 USD"
        android:typeface="sans"
        android:textSize="10sp"
        android:textColor="#000000"
        android:layout_weight="0.4"
        android:gravity="left"
        android:padding="3dip" />
</TableRow>

<View
    android:layout_height="2dip"
    android:background="#000000" />

<TableRow>
    <TextView
        android:text="Monthly Income:"
        android:typeface="sans"
        android:textSize="10sp"
        android:textColor="#000000"
        android:gravity="right"
        android:layout_weight="0.6"
        android:padding="3dip" />
    <TextView
        android:text="$0.00 USD"
        android:typeface="sans"
        android:textSize="10sp"
        android:textColor="#000000"
        android:gravity="left"
        android:layout_weight="0.4"
        android:padding="3dip" />
</TableRow>

<View
    android:layout_height="2dip"
    android:background="#000000" />

<TableRow>
    <TextView
        android:text="Annual Income:"
        android:typeface="sans"
        android:textSize="10sp"
        android:textColor="#000000"
        android:gravity="right"
        android:layout_weight="0.6"
        android:padding="3dip" />
    <TextView
        android:text="$0.00 USD"
        android:typeface="sans"
        android:textSize="10sp"
        android:textColor="#000000"
        android:gravity="left"
        android:layout_weight="0.4"
        android:padding="3dip" />
</TableRow>

【讨论】:

  • 刚刚找到一个和它说的完全一样的东西,而且效果很好,非常感谢!
  • 为了扩展最初的问题,您从第二列开始布局,因为android:layout_column 是零索引的。然后,您通过设置android:stretchColumns="0" 来拉伸其中没有任何内容的第一列。这就是为什么一切都被推到右边。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
相关资源
最近更新 更多