CardView показывает только первую строку GridLayout

По какой-то причине мой CardView показывает только первую строку изображений в моем представлении сетки. (или мой GridView показывает только первую строку - я не могу сказать).

Я динамически добавляю изображения в gridView и использую gridAdapter.notifyDataSetChanged(). Возможно, поэтому высота CardView не адаптируется? Когда я добавляю android:layout_height="500dp" в CardView, я вижу все свои изображения.

Есть ли способ заставить CardView обернуть содержимое, чтобы я мог видеть все свои изображения (кроме жесткого кодирования высоты)?

Обратите внимание, я не могу жестко указать высоту, так как количество рядов фотографий является динамическим.

Показ только одного ряда изображений, даже если на самом деле их 2 ряда введите здесь описание изображения

<android.support.v7.widget.CardView 
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="2dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/m_photos" />

    <GridView
        android:id="@+id/m_grid"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="2dp"
        android:clickable="true"
        android:columnWidth="90dp"
        android:drawSelectorOnTop="true"
        android:focusable="true"
        android:gravity="center"
        android:numColumns="auto_fit"
        android:stretchMode="none"
        android:verticalSpacing="2dp" />
</LinearLayout>
</android.support.v7.widget.CardView>

person VIN    schedule 07.09.2016    source источник


Ответы (1)


Я столкнулся с этой проблемой несколько дней назад. В этом случае Wrap_content не работает идеально. Поэтому используйте высоту макета в фиксированном dp и используйте для этого размер. это работает для моего случая.

<GridView
    android:id="@+id/m_grid"
    android:layout_width="match_parent"
    android:layout_height="@dimen/gvHeight"
    android:layout_margin="2dp"
    android:clickable="true"
    android:columnWidth="90dp"
    android:drawSelectorOnTop="true"
    android:focusable="true"
    android:gravity="center"
    android:numColumns="auto_fit"
    android:stretchMode="none"
    android:verticalSpacing="2dp" />
person Jubayer_cse    schedule 07.09.2016
comment
Это работает, если есть несколько рядов фотографий. Однако количество фотографий является динамическим, и я не хочу показывать несколько строк, когда есть только одна строка фотографий. - person VIN; 07.09.2016