带有 CardView 的 StaggeredGridLayoutManager 不适合项目测量

StaggeredGridLayoutManager with CardView doesnt fit item measure

我正在尝试将 StaggeredGridLayoutManagerandroid.support.v7.widget (v22) 中的 CardView 一起使用。 这是我项目的布局:

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/card_view"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    card_view:cardUseCompatPadding="true"
    card_view:cardCornerRadius="6dp"      >

    <RelativeLayout
        android:id="@+id/layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="5dip" >

    <ImageView
        android:id="@+id/photo"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:adjustViewBounds="true" />

    </RelativeLayout> 

</android.support.v7.widget.CardView>

在模拟器和 5.0+ 设备上它没问题并且运行良好,但在模拟器上 4.x.x 图像不会调整大小以填充项目的宽度/高度(因为有一个比例类型 centerInside 不符合项目的尺寸)。 我现在无法在真正的 4.x.x 设备上尝试它,有谁知道这是否只是在模拟器中或什至在某些真正的 4.x.x 设备中的问题?

已解决 来自文档 http://developer.android.com/reference/android/widget/ImageView.html#setAdjustViewBounds(boolean)]1

If the application targets API level 17 or lower, adjustViewBounds will allow the drawable to shrink the view bounds, but not grow to fill available measured space in all cases.

此问题仅与 android:adjustViewBounds="true" 的行为有关,似乎从 Android 4.3 开始能够在 ImageView 中缩放图像,不仅可以向下调整原始尺寸,而且 向上保持比例。

虽然很晚了,但我相信这应该是批准的答案。我们将不得不创建自己的 ImageView 并根据可用的固定 height/width 测量替代尺寸。 @Nuuneoi 已尽最大努力将其付诸实践。请关注这个Githublink