【问题标题】:Margin outside TableLayoutTableLayout 之外的边距
【发布时间】:2019-12-10 08:46:48
【问题描述】:

我制作了这个 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:对于边距问题,我什至尝试调整表格大小但没有任何改变

【问题讨论】:

    标签: java android android-layout tablelayout


    【解决方案1】:

    您没有看到您想要的布局,因为您在视图上使用了固定大小:

    不同的手机有不同的屏幕尺寸,在您的布局中,您在视图上使用固定尺寸(例如,固定尺寸为 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>
    

    它看起来像这样:(箭头指向指南以便更好地理解)

    现在,我知道乍一看这可能看起来需要大量工作,有些人可能想知道这是否真的值得付出努力,但这就是为什么我认为 ConstraintLayout 是构建的正确方法你的用户界面:

    • 真的很人性化。

    • ConstraintLayout 非常简单易学。

    • 一旦你学会了它,你就会发现你节省了大量的开发时间,因为你的 UI 非常快。

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

    【讨论】:

      【解决方案2】:

      您在表格布局中使用了不必要的边距,这使您的布局远离表单屏幕。将表格布局分别设置为 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-08
        • 1970-01-01
        相关资源
        最近更新 更多