带有 CardView 的 StaggeredGridLayoutManager 不适合项目测量
StaggeredGridLayoutManager with CardView doesnt fit item measure
我正在尝试将 StaggeredGridLayoutManager 与 android.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
我正在尝试将 StaggeredGridLayoutManager 与 android.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