Android - 删除 TableLayout 行之间的空间

Posted

技术标签:

【中文标题】Android - 删除 TableLayout 行之间的空间【英文标题】:Android - Removing space between TableLayout Rows 【发布时间】:2021-12-28 03:59:19 【问题描述】:

我想在按钮“0”和按钮“1”之间删除。我的目标是它们之间的空间与按钮“X”相同。 UI result

这些解决方案不起作用:

How to remove space between two rows in Tablelayout?

How to reduce space between two rows of Table Layout for android?

此外,按钮“X”应该跨越两行,只有当我输入更大的 textSize 时才会这样做。

<TableLayout
    android:layout_
    android:layout_>
    <TableRow>
        
        <TableLayout android:layout_
            android:layout_
            android:layout_weight="1">
            <TableRow android:layout_
                android:layout_
                android:layout_weight="1"
                android:layout_margin="0sp"
                android:padding="0sp">
                <com.google.android.material.button.MaterialButton
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:text="0"
                    android:layout_margin="2sp"
                    />
            </TableRow>
            
            <TableRow
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:layout_margin="0sp"
                android:padding="0sp">
                <com.google.android.material.button.MaterialButton
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:text="1"
                    android:layout_margin="2sp"
                    />
            </TableRow>
        </TableLayout>
        
        <TableLayout
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:layout_margin="0sp"
            android:padding="0sp">
            <TableRow>
                <com.google.android.material.button.MaterialButton
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:text="X"
                    android:layout_margin="2sp"
                    />
            </TableRow>
        </TableLayout>
        
    </TableRow>
</TableLayout>

提前感谢您的任何想法。

【问题讨论】:

【参考方案1】:

我用嵌套的TableLayout 尝试了您的方法,但未能完全删除空间。按钮属性insetTopinsetBottom 删除了一些空间。您可以使用嵌套较少的布局使用不同的方法:

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

    <TableRow
        android:layout_
        android:layout_>

        <Button
            android:id="@+id/button"
            android:layout_
            android:layout_
            android:layout_weight="0.5"
            android:insetBottom="0dp"
            android:text="1" />

        <Button
            android:id="@+id/button2"
            android:layout_
            android:layout_
            android:layout_weight="0.5"
            android:insetBottom="0dp"
            android:text="X" />
    </TableRow>

    <TableRow
        android:layout_
        android:layout_ >

        <Button
            android:id="@+id/button3"
            android:layout_
            android:layout_
            android:layout_weight="0.5"
            android:insetTop="0dp"
            android:text="Button" />

        <Space
            android:layout_
            android:layout_
            android:layout_weight="0.5" />
    </TableRow>
</TableLayout>

【讨论】:

非常感谢。有了insetBottominsetTop,我终于明白了。 :)【参考方案2】:

你可以这样做

<TableLayout
        android:layout_
        android:layout_>
    
    <TableRow>

        <TableLayout
                android:layout_
                android:layout_
                android:layout_weight="1">

            <TableRow
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:padding="0sp">

                <com.google.android.material.button.MaterialButton
                        android:layout_
                        android:layout_
                        android:layout_weight="1"
                        android:text="0" />
            </TableRow>

            <TableRow
                    android:layout_
                    android:layout_
                    android:layout_weight="1"
                    android:padding="0sp">

                <com.google.android.material.button.MaterialButton
                        android:layout_
                        android:layout_
                        android:layout_weight="1"
                        android:text="1" />
            </TableRow>
        </TableLayout>
        
        <com.google.android.material.button.MaterialButton
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:text="X" />

    </TableRow>
</TableLayout>

【讨论】:

以上是关于Android - 删除 TableLayout 行之间的空间的主要内容,如果未能解决你的问题,请参考以下文章

TableLayout - 删除列之间的空间

Android 布局之TableLayout

TableLayout简单使用

TableLayout

Android:如何在 TableLayout 中滑动列?

Android 计算器UI-TableLayout