abler98
@abler98
Software Engineer

Android — Как рассчитать высоту GridView?

Допустим, есть заполненный список GridView с автоматической настройкой columns (auto_fit), который находится в ScrollView. Я выставил параметр layout_height="wrap_content", но высота списка получается равной высоте одного элемента, а мне нужно чтоб он приминал такой размер, который будет вмещать в себя весь список.

Код разметки:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context="ru.redo.zona.MainTabFragment">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true">

        <RelativeLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/main_container">

            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/main_popularmovies"
                android:layout_alignParentTop="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true">

                <LinearLayout
                    android:orientation="horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center_horizontal"
                    android:id="@+id/main_popularmovies_title">

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/main_topfilms"
                        android:id="@+id/main_popularmovies_titleText"/>

                </LinearLayout>

                <GridView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/main_popularmovies_list"
                    android:stretchMode="columnWidth"
                    android:verticalSpacing="10dp"
                    android:numColumns="auto_fit"
                    android:horizontalSpacing="10dp"
                    android:columnWidth="@dimen/cover_width"
                    android:gravity="center"/>

            </LinearLayout>

        </RelativeLayout>
    </ScrollView>

</RelativeLayout>


Пример того, что я хочу сделать:
ee3394c349be47238cd896a75fdbf12b.png
  • Вопрос задан
  • 572 просмотра
Решения вопроса 2
@belozerow
У вас скорее всего неправильная разметка, поэтому вы пытаетесь идти не тем путём.
То, что вы пытаетесь сделать убивает всю идею gridview.

Поищите готовые решения добавления хедеров в gridview
Ответ написан
gadfi
@gadfi
https://gamega.org
изврат вы творите, используйте reciclerview, модели приложений, адаптер и будет вам счастье малой кровью и из коробки.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы