TableLayout之外的边距

3

我制作了这个tableLayout,但是你可以看到,它有一些边距我不知道如何去除:https://imgur.com/a/qKcaJ92 另一个问题是最后一行是开放的。这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:id="@+id/slidelinearlayout">

        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/tl"
            android:layout_width="170dp"
            android:layout_height="180dp"
            android:layout_marginLeft="750dp"
            android:layout_marginTop="150dp"
            android:layout_marginRight="0dp"
            android:background="@android:color/white"
            android:padding="16dp"
            tools:context=".MainActivity">
            <TableRow
                android:id="@+id/tr_item_1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/table_row_bg"
                android:padding="5dp">

                <TextView
                    android:id="@+id/item_1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingRight="10dp"
                    android:text="Flessibilità" />

                <TextView
                    android:id="@+id/f_item_1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" />
            </TableRow>

            <TableRow
                android:id="@+id/tr_item_2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/table_row_bg"
                android:padding="5dp">

                <TextView
                    android:id="@+id/item_2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingRight="10dp"
                    android:text="Fluidità" />

                <TextView
                    android:id="@+id/fl_item_2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" />
            </TableRow>

            <TableRow
                android:id="@+id/tr_item_3"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/table_row_bg"
                android:padding="5dp">

                <TextView
                    android:id="@+id/item_3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingRight="10dp"
                    android:text="Originalità" />

                <TextView
                    android:id="@+id/o_item_3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" />
            </TableRow>

            <TableRow
                android:id="@+id/tr_item_4"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/table_row_bg"
                android:padding="5dp">

                <TextView
                    android:id="@+id/item_4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingRight="10dp"
                    android:text="Elaborazione" />

                <TextView
                    android:id="@+id/el_item_4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" />
            </TableRow>

            <TableRow
                android:id="@+id/tr_item_5"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/table_row_bg"
                android:padding="5dp">

                <TextView
                    android:id="@+id/item_5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingRight="10dp"
                    android:text="Titolo" />

                <TextView
                    android:id="@+id/t_item_5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" />
            </TableRow>
        </TableLayout>

        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools"
            android:id="@+id/tl_2"
            android:layout_width="300dp"
            android:layout_height="130dp"
            android:layout_marginLeft="750dp"
            android:layout_marginTop="370dp"
            android:background="@android:color/white"
            android:padding="16dp"
            tools:context=".MainActivity">
            <TableRow
                android:id="@+id/tr_item_6"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/table_row_bg"
                android:padding="5dp">

                <TextView
                    android:id="@+id/t1_item_1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingRight="10dp"
                    android:text="Tempo di reazione" />

                <TextView
                    android:id="@+id/tempo_item_1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" />
            </TableRow>

            <TableRow
                android:id="@+id/tr_item_7"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/table_row_bg"
                android:padding="5dp">

                <TextView
                    android:id="@+id/t2_item_2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingRight="10dp"
                    android:text="Tempo di completamento" />

                <TextView
                    android:id="@+id/tempo_item_2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" />
            </TableRow>

            <TableRow
                android:id="@+id/tr_item_8"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/table_row_bg"
                android:padding="5dp">

                <TextView
                    android:id="@+id/n_cancellature"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingRight="10dp"
                    android:text="Numero cancellature" />

                <TextView
                    android:id="@+id/n_3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@drawable/table_cell_bg"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" />
            </TableRow>
        </TableLayout>
    </RelativeLayout>

您知道我该如何解决这个问题吗?如您所见,所有标签都已关闭。我使用RelativeLayout在屏幕上自由布局元素,这可能是问题的一部分吗? PS:对于间距的问题,我甚至尝试调整表格大小,但仍然没有变化。

2个回答

0

您在表格布局中使用了不必要的边距,这使得您的布局移出了屏幕。请将表格布局设置为layout_width="Match_parent"和layout_height="Wrap_Content"。

另外,请尽量避免使用您提到的以下边距。

android:layout_width="300dp"
android:layout_height="130dp"
android:layout_marginLeft="750dp"
android:layout_marginTop="370dp"

上述内容可以重写为

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="0" 
android_gravity:center

0

你看到的布局不如意是因为你在视图上使用了固定尺寸:

不同的手机有不同的屏幕尺寸,在你的布局中,你正在使用视图的固定大小(例如,android:layout_marginTop="150dp"),结果是,在一个屏幕上看起来好的东西(在你的 Android Studio 预览屏幕上)在另一个屏幕上(你的实际手机上)看起来不好。

如果你想在所有设备上以相同的方式查看你的表格,你可以使用 ConstraintLayoutguidelines 来实现你想要的外观:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent">



<TextView
    android:id="@+id/textView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="TextView"
    app:layout_constraintBottom_toTopOf="@+id/textView5"
    app:layout_constraintEnd_toStartOf="@+id/textView4"
    android:background="@color/cardview_dark_background"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView3" />

<TextView
    android:id="@+id/textView2"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="TextView"
    app:layout_constraintBottom_toBottomOf="@+id/textView5"
    app:layout_constraintEnd_toEndOf="parent"
    android:background="@color/cardview_dark_background"
    app:layout_constraintStart_toEndOf="@+id/textView5"
    app:layout_constraintTop_toTopOf="@+id/textView5" />

<TextView
    android:id="@+id/textView3"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="1"
    app:layout_constraintBottom_toTopOf="@+id/textView"
    app:layout_constraintEnd_toStartOf="@+id/textView6"
    app:layout_constraintStart_toStartOf="parent"
    android:background="@color/colorAccent"
    app:layout_constraintTop_toTopOf="@+id/guideline" />

<TextView
    android:id="@+id/textView4"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="TextView"
    app:layout_constraintBottom_toBottomOf="@+id/textView"
    app:layout_constraintEnd_toEndOf="parent"
    android:background="@color/colorAccent"
    app:layout_constraintStart_toEndOf="@+id/textView"
    app:layout_constraintTop_toTopOf="@+id/textView" />

<TextView
    android:id="@+id/textView5"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="TextView"
    app:layout_constraintBottom_toTopOf="@+id/guideline2"
    android:background="@color/colorAccent"
    app:layout_constraintEnd_toStartOf="@+id/textView2"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView" />

<TextView
    android:id="@+id/textView6"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:text="2"
    app:layout_constraintBottom_toBottomOf="@+id/textView3"
    app:layout_constraintEnd_toEndOf="parent"
    android:background="@color/cardview_dark_background"
    app:layout_constraintStart_toEndOf="@+id/textView3"
    app:layout_constraintTop_toTopOf="@+id/textView3" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent=".3" />

<androidx.constraintlayout.widget.Guideline
    android:id="@+id/guideline2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    app:layout_constraintGuide_percent=".5" />
</androidx.constraintlayout.widget.ConstraintLayout>

它将看起来像这样:(箭头指向更好理解的指南)

enter image description here

现在,我知道乍一看这可能看起来是很多工作,有些人可能会想知道这是否真的值得努力,但我相信ConstraintLayout是构建用户界面的正确方式的原因在于:

  • 它非常用户友好。

  • ConstraintLayout非常易学和简单。

  • 一旦你学会了它,你会发现你可以节省大量开发时间,因为制作用户界面非常快速。

  • Constraint layout旨在支持不同的屏幕尺寸,因此无需为每个屏幕尺寸构建布局。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接