TableLayout с ImageView внутри - PullRequest
0 голосов
/ 19 марта 2019

Я новичок в Android и еще учусь.Я пытаюсь сделать макет своей активности примерно таким, как показано ниже.enter image description here

Я думал использовать TableLayout для того же, что и ниже

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

    <TableRow
        android:id="@+id/row_1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="4dp"
        android:background="#ed8404">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:gravity="center"
            android:scaleType="fitCenter"
            android:src="@drawable/image1" />
    </TableRow>


    <TableRow
        android:id="@+id/row_2"
        android:weightSum="2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="2dp">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginRight="2dp"
            android:layout_weight="1"
            android:gravity="center"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter"
            android:src="@drawable/image1"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:scaleType="fitCenter"
            android:adjustViewBounds="true"
            android:src="@drawable/image1" />

    </TableRow>


    <TableRow
        android:id="@+id/row_3"
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:layout_marginTop="4dp"
        android:background="#ed8404">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:adjustViewBounds="true"
            android:src="@drawable/image1"/>
    </TableRow>

    <TableRow
        android:layout_weight="1"
        android:id="@+id/row_4"
        android:weightSum="2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="2dp">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginRight="2dp"
            android:layout_weight="1"
            android:gravity="center"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter"
            android:src="@drawable/image1"/>

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:scaleType="fitCenter"
            android:adjustViewBounds="true"
            android:src="@drawable/image1" />

    </TableRow>
</TableLayout>

Но я не могу установить правильную высоту на всех изображениях.Это выглядит примерно так:

enter image description here

Дайте мне знать, если кто-то может помочь мне решить проблему.Я хочу, чтобы все изображения подходили для просмотра и были одинаковой высоты.Большое спасибо.

1 Ответ

1 голос
/ 19 марта 2019

Если у вас больше элементов, чем умещается на экране, вы должны использовать RecyclerView (с разными ViewHolder с).

Если у вас фиксированное количество элементов, вы можете использовать LinearLayout дляуменьшить уровень вложенности:

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

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:adjustViewBounds="true"
        android:background="#F0F"
        android:gravity="center"
        android:scaleType="fitCenter" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:background="#0FF"
            android:gravity="center"
            android:scaleType="fitCenter" />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:background="#FF0"
            android:gravity="center"
            android:scaleType="fitCenter" />

    </LinearLayout>

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:adjustViewBounds="true"
        android:background="#00F"
        android:gravity="center"
        android:scaleType="fitCenter" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:background="#0F0"
            android:gravity="center"
            android:scaleType="fitCenter" />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:adjustViewBounds="true"
            android:background="#F00"
            android:gravity="center"
            android:scaleType="fitCenter" />

    </LinearLayout>

</LinearLayout>

Для которого можно ожидать вывода: layout

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...