GridLayout переполняет экран

У меня есть изображения в макете сетки. Однако строки макета сетки переполняют экран. Я думаю, что ширина изображения не является причиной проблемы. Если я удалю изображения, линии макета сетки все равно переполнятся.

Как я могу это решить?

Код:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout 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/myGridLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="2"
    android:rowCount="2"
    tools:context="com.example.orhan9.mdtransitionanimation.MainActivity">

    <ImageView
        android:id="@+id/papagan"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="0"
        app:srcCompat="@drawable/papagan"
        />
    <ImageView
        android:id="@+id/goril"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="0"
        app:srcCompat="@drawable/goril" />

    <ImageView
        android:id="@+id/okuz"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="1"
        app:srcCompat="@drawable/okuz" />

    <ImageView
        android:id="@+id/ordek"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="1"
        app:srcCompat="@drawable/ordek" />

    <Button
        android:id="@+id/btnTransition"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="transition animation" />

</GridLayout>

Экран макета:

Макет экрана


person Orhan Avan    schedule 03.03.2018    source источник
comment
Используйте gridview вместо gridlayout, передайте адаптер с gridview, вы также можете использовать recyclerview для поддержки последней версии API, проверьте ссылку ниже: journaldev.com/13792/android-gridlayoutmanager-example   -  person Milan Hirpara    schedule 03.03.2018


Ответы (1)


Я мог бы найти несколько способов помочь вам:

  1. Попробуйте использовать Linearlayout для деформации изображений, установите его ширину и высоту, а внутри поместите изображения, как предложено здесь (их решение с TextView, но вы можете сделать то же самое с вашим Imageview).
  2. Установите размер изображения для определенного размера (в dp).
  3. Попробуйте использовать android:layout_rowWeight и android:layout_columnWeight, например здесь.

А вот краткое руководство, которое может помочь вам лучше понять Макет сетки: Макет сетки на примере

person Omri Attiya    schedule 03.03.2018