TableLayout выглядит по-разному на разных устройствах

Имеется ConstraintLayout с главной страницей и несколько TableLayout с таблицами, в которых соответственно содержится расписания занятий на каждый день. Но почему-то на одном устройстве всё приемлемо отображается, а на другом всё съезжает.

Основной layout activity_main.xml, в который я потом подключаю таблицу в зависимости от дня недели:

<?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:id="@+id/main_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/currentWeek"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Расписание занятий"

        android:textColor="@color/black"
        android:textSize="24sp"

        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Пример Layout с таблицей на среду:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    android:id="@+id/wednesday_layout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="5dp"

        android:text="Среда"
        android:textColor="@color/black"
        android:textSize="@dimen/day_text_size" />

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/table_head_background"
        android:weightSum="1">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Время"
            android:textColor="@color/white"
            android:textSize="@dimen/table_head_cell_text_size" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Предмет"
            android:textColor="@color/white"
            android:textSize="@dimen/table_head_cell_text_size" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Преподаватель"
            android:textColor="@color/white"
            android:textSize="@dimen/table_head_cell_text_size" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.25"
            android:gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Аудитория"
            android:textColor="@color/white"
            android:textSize="@dimen/table_head_cell_text_size" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/table_cell_background"
        android:gravity="center">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="13:20 - 14:55"
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Методы принятия решений\nлаб."
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Исаев Р. А."
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="413"
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/table_cell_background"
        android:gravity="center">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="15:05 - 16:40"
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Защита информации\nлекция"
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Дергачев К. В."
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="219"
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/table_cell_background"
        android:gravity="center">

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="16:50 - 18:25"
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Программирование мобильных систем\nлаб."
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="Коптенок Е. В."
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:padding="@dimen/table_cell_padding"

            android:text="413"
            android:textColor="@color/black"
            android:textSize="@dimen/table_cell_text_size" />
    </TableRow>

</TableLayout>

Подключение таблицы на основную страницу делаю так:

ConstraintLayout root = (ConstraintLayout) findViewById(R.id.main_layout);
        LayoutInflater li = LayoutInflater.from(this);
        View dayLayoutView = li.inflate(R.layout.wednesday_layout, null);
        ConstraintLayout.LayoutParams dayLayout = new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
        dayLayout.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID;
        dayLayout.topToBottom = currentWeek.getId();
        dayLayoutView.setLayoutParams(dayLayout);

        root.addView(dayLayoutView);

Пытался исправить с помощью добавления android:layout_gravity="center" в каждую ячейку таблицы и для каждого столбца заголовка android:layout_weight="0.25", но получилось только хуже

Собственно, скриншоты:

  1. Как выглядит на одном устройстве

1

  1. Как выглядит на другом устройстве (всё съехало)

2

В чём заключается проблема и как с ней бороться?


Ответы (0 шт):