如何在TableLayout中使右单元格更靠近左半格?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在TableLayout中使右单元格更靠近左半格?相关的知识,希望对你有一定的参考价值。

我有以下代码:

    <TableLayout
        android:id="@+id/table"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:shrinkColumns="*"
        android:stretchColumns="*"
        android:layout_marginTop="15dp">

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

            <TextView
                android:id="@+id/text_project1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="text"/>

            <Spinner
                android:id="@+id/spinner_project2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:drawSelectorOnTop="true" />
        </TableRow>


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

            <TextView
                android:id="@+id/text_project2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Very long test"/>

            <Spinner
                android:id="@+id/spinner_project2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:drawSelectorOnTop="true" />
        </TableRow>
    </TableLayout

它基本上会创建下表:

text                         [spinner]
very long text               [spinner]

我希望微调框更接近文本,所以我不希望行数为50-50。而是我想采用文本中最长的字符串,这将是第一列中单元格的大小。我会得到:

text            [spinner]  <Nothing here>
very long text  [spinner]  <Nothing here>

我尝试使用marginLeft,但没有帮助。我还尝试使用weights=3插入空的文本视图。看起来更好,但是在代码中间我得到了空的textview。我敢肯定有办法。我该怎么办?

答案

android:shrinkColumns="1"用于当前正在使用的TableLayout,并删除android:stretchColumns="*"

<TableLayout
        android:id="@+id/table"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:shrinkColumns="1"
        android:layout_margin="15dp"
        >

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

            <TextView
                android:id="@+id/text_project1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="text"/>

            <Spinner
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawSelectorOnTop="true" />

        </TableRow>


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

            <TextView
                android:id="@+id/text_project2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Very long test"/>

            <Spinner
                android:id="@+id/spinner_2"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:drawSelectorOnTop="true" />

        </TableRow>
    </TableLayout>

注意:索引从0开始,即您要缩小/拉伸第1个列,您必须使用0而不是1

以上是关于如何在TableLayout中使右单元格更靠近左半格?的主要内容,如果未能解决你的问题,请参考以下文章

UITableViewCell - 如何使右 UILabel 截断而不是左截断?

UITableViewCell - 将所有单元格更改为 BackgroundView

如何在 TableLayout 中添加 editText.addTextChangedListener

如何在我的 Android 应用程序中使视图填充其父级的整个宽度?

按列值对 R 数据框进行子集,并将与特定值匹配的单元格更改为新值

如何在datagrid中使一行的单元格不可点击