【问题标题】:Center one Column in a Tablelayout and align the other to the right and left在表格布局中将一列居中并将另一列左右对齐
【发布时间】:2013-08-18 21:07:18
【问题描述】:

我刚开始接触一些 Android 编程,并且在制作布局方面非常困难。我想制作以下表格布局,并且我想让中间的 TextView (textView3) 在页面的水平居中,而其他两个 TextView 应该位于居中列的左侧和右侧。如果左侧或右侧 TextView 中的值之一生成换行符,则其他两个 TextView 也应垂直居中。

我希望有人能理解我的问题。 格雷茨

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall" />

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall" />

    </TableRow>

【问题讨论】:

  • 将重力设置为中心。
  • 喜欢这个 android:layout_gravity="left" android:layout_gravity="center" android:layout_gravity="right" 为你的文本视图
  • 如果我将 TableRow 设置为 android:gravity="center_horizo​​ntal" 整行将居中,这是合乎逻辑的。如果我将 textView3 设置为 android:gravity="center_horizo​​ntal" 什么都不会发生。我尝试了所有不同类型的 android:gravity 和 android:layout_gravity 但无法让它工作。
  • 试试这个 android:layout_gravity="left" android:layout_gravity="center" android:layout_gravity="right"
  • 或者你可以使用 android:layout_marginLeft="0dp" 并像这样指定其他人。

标签: android center tablelayout multiple-columns


【解决方案1】:

好的,经过更多研究后,我通过为每个 TextView 设置 android:layout_width="0dip" 使其工作。问题是,android:layout_weight 取决于 TextView 的实际宽度,因此“wrap_content”不起作用。

<TableRow
    android:id="@+id/tableRow1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="left"
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="left"
        android:text="Small Text"
        android:textAppearance="?android:attr/textAppearanceSmall" />
</TableRow>

【讨论】:

    【解决方案2】:

    请试试这个:

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    
        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    
        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="right"
            android:text="Small Text"
            android:textAppearance="?android:attr/textAppearanceSmall" />
    </TableRow>
    

    【讨论】:

    • 好的,我们越来越近了,但这仍然不是我想要的样子。在这里你可以看到输出:picload.org/image/oagwldd/table.jpg“-”应该是整个Page的中心,右边的TextView需要创建一个换行符。
    • 好的,从我的代码中删除 android:gravity="right" 和 android:gravity="center"
    • 这还是没有把中间带“-”的TextView放到Page的中心。我真的不明白为什么这根本不起作用。似乎 Android 说“哈哈,看看如果我将 TextView 向左移动一点,我可以将下一个 Text 放入同一行而无需换行,这是因为我忽略了所有语句!”。
    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 2012-06-26
    • 2020-04-14
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2018-12-15
    相关资源
    最近更新 更多