Как сделать соотношение ширины равным XML GridView - PullRequest
0 голосов
/ 26 февраля 2020

Я новичок в Android программировании и XML. Поэтому я хочу иметь табличный GridView, который будет иметь ширину 100% (match_parent), чтобы у дочерних элементов было равное отношение ширины. GridView будет иметь 4 дочерних элемента, каждый из которых должен иметь 25% ширины GridView.

Используя HTML для иллюстрации, у меня будет что-то подобное в моей таблице <td width="25% valign="center">

Так вот мой XML код

<GridView 
    androìd:layout_width="match_parent"
    androìd:layout_height="match_parent"
    android:rowCount="1"
    android:columnCount="4">
    <ImageView
        androìd:layout_width="40dp"
        androìd:layout_height="40dp"
        androìd:layout_row="0"
        android:layout_column="1"
        android:src="@drawable/p1"/>
    <ImageView
        androìd:layout_width="40dp"
        androìd:layout_height="40dp"
        androìd:layout_row="0"
        android:layout_column="2"
        android:src="@drawable/p2"/>
    <ImageView
        androìd:layout_width="40dp"
        androìd:layout_height="40dp"
        androìd:layout_row="0"
        android:layout_column="3"
        android:src="@drawable/p3"/>
    <ImageView
        androìd:layout_width="40dp"
        androìd:layout_height="40dp"
        androìd:layout_row="0"
        android:layout_column="4"
        android:src="@drawable/p4"/>
</GridView>

Но этот код не делает его похожим на таблицу или сетку, он просто выравнивает изображения по горизонтали. Пожалуйста, мне нужна помощь.

1 Ответ

1 голос
/ 26 февраля 2020

С constraintLayout это очень просто:

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


<androidx.appcompat.widget.AppCompatImageView
    android:id="@+id/image1"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:background="@color/red"
    app:layout_constraintWidth_percent="0.5"
    app:layout_constraintDimensionRatio="1:1"/>

<androidx.appcompat.widget.AppCompatImageView
    android:id="@+id/image2"
    app:layout_constraintStart_toEndOf="@id/image1"
    app:layout_constraintBottom_toTopOf="parentparent"
    app:layout_constraintEnd_toEndOf="parent"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:background="@color/green"
    app:layout_constraintWidth_percent="0.5"
    app:layout_constraintDimensionRatio="1:1"/>

<androidx.appcompat.widget.AppCompatImageView
    android:id="@+id/image3"
    app:layout_constraintTop_toBottomOf="@+id/image1"
    app:layout_constraintStart_toStartOf="parent"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:background="@color/yellow"
    app:layout_constraintWidth_percent="0.5"
    app:layout_constraintDimensionRatio="1:1"/>

<androidx.appcompat.widget.AppCompatImageView
    android:id="@+id/image4"
    app:layout_constraintTop_toBottomOf="@id/image2"
    app:layout_constraintEnd_toEndOf="parent"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:background="@color/red"
    app:layout_constraintWidth_percent="0.5"
    app:layout_constraintDimensionRatio="1:1"/>

</androidx.constraintlayout.widget.ConstraintLayout>
...