如何在Android的tableview中左对齐文本

Posted

技术标签:

【中文标题】如何在Android的tableview中左对齐文本【英文标题】:How to left justify text in a tableview in Android 【发布时间】:2021-10-05 10:43:54 【问题描述】:

我有以下布局:

<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:stretchColumns="1,2">

    <TableRow>

        <TextView
            android:id="@+id/username"
            android:textSize="14sp"
            android:padding="10dp"
            android:gravity="left"
            android:layout_column="1" />

        <TextView
            android:id="@+id/status"
            android:textSize="14sp"
            android:padding="10dp"
            android:gravity="left"
            android:layout_column="1" />

    </TableRow>

</TableLayout>

但是输出如下:

我不确定我需要设置哪个属性?

【问题讨论】:

TableRows 基本上只是水平的LinearLayouts,所以你可以使用layout_weights 来获得每行大小均匀的孩子。 【参考方案1】:
    <?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:stretchColumns="1,2">

    <TableRow
        android:layout_
        android:layout_>

        <TextView
            android:id="@+id/username"
            android:layout_column="1"
            android:layout_gravity="left"
            android:gravity="left"
            android:padding="10dp"
            android:text="@string/app_name"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/status"
            android:layout_column="1"
            android:layout_gravity="left"
            android:gravity="left"
            android:padding="10dp"
            android:text="@string/app_name"
            android:textSize="14sp" />

    </TableRow>

</TableLayout>

请查看tutorial

【讨论】:

您的回答没有解决问题。当基于用户名的文本视图更长时,第二列似乎开始得更远!?【参考方案2】:

android:layout_weight=".1"android:layout_width="0dp"android:layout_height="wrap_content" 添加到TextviewTableRow

试试这个代码:

<TableLayout
    android:layout_
    android:layout_
    android:stretchColumns="1,2">
    <TableRow>
        <TextView
            android:id="@+id/username"
            android:layout_
            android:layout_
            android:textSize="14sp"
            android:padding="10dp"
            android:gravity="left"
            android:layout_column="1"
            android:layout_weight=".1"/>

        <TextView
            android:id="@+id/status"
            android:layout_
            android:layout_
            android:textSize="14sp"
            android:padding="10dp"
            android:gravity="left"
            android:layout_column="1"
            android:layout_weight=".1"/>
    </TableRow>
</TableLayout>

以上代码的输出如下:

【讨论】:

以上是关于如何在Android的tableview中左对齐文本的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UITableViewCell 中左对齐或右对齐 UILabel

Android Layout在水平布局中左右对齐

如何在 Xcode 中左对齐导航栏的标题?

如何在ggplot2的注释中左对齐文本

如何在引导程序中左右对齐导航栏的列表项

如何在 IPython 笔记本的 pandas DataFrame 列中左对齐文本