CardView仅显示GridLayout的第一行

时间:2016-09-07 16:53:34

标签: android android-studio gridview android-cardview cardview

出于某种原因,我的CardView仅显示网格视图中的第一行图像。 (或者我的GridView只显示第一行 - 我无法告诉)。

我正在动态地将图像添加到gridView并使用gridAdapter.notifyDataSetChanged()。也许这就是为什么CardView的高度不适应?当我添加android:layout_height =" 500dp"到了CardView,然后我看到了我的所有图片。

有没有办法让CardView包装内容所以我可以看到我的所有图像(除了硬编码高度)?

请注意,我无法硬编码高度,因为照片的行数是动态的。

仅显示一行图像,即使实际上有两行图像 enter image description here

<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>

1 个答案:

答案 0 :(得分:0)

我几天前遇到过这个问题。对于这种情况,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" />
相关问题