我正在制作带有照片的水平RecyclerView,我遇到了wrap_parent问题。如果我放入View width = wrap_content
,它是screenWidth宽度,尽管图像占用的空间非常小。如果我将wrap_content
更改为某个值,则它会完美运行.RcyclerView的高度为75dp,match_parent
。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="75dp"
android:layout_height="wrap_content"
android:clickable="true"
android:foreground="@drawable/card_foreground">
<ImageView
android:id="@+id/bitmap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/image" />
</LinearLayout>
深蓝色是屏幕,浅蓝色是照片。问题是当我将视图设置为wrap_content
时,我有案例1。
SOLUTION:
我最近解决了这个问题,当你尝试使用缩放的ImageView wrap_parent时,有一些bug或类似的东西。它不能很好地工作。
为了解决这个问题,我已将每张照片调整为最终尺寸,然后再将其放入RecyclerView。另外,我在ImageView之间有一些小空间,我通过将padding=0
和margin=0
添加到RecyclerView的childern来解决。
答案 0 :(得分:0)
weight
属性只要您使用该视图LinearLayout
,您就可以使用此属性的所有ImageView
次视图:
android:layout_weight="{number_value}"
很快,如果您为ImageView
的所有weight
个视图添加相同的值,则会计算相同的空间,但不会超过其父视图属性。
http://developer.android.com/guide/topics/ui/layout/linear.html
请阅读此问题:
What does android:layout_weight mean?
如果您仍然遇到问题,请给我打电话。
第二个解决方案:ImageView scale
属性
对于ImageView,您可以使用scaleX
,scaleY
,scaleType
属性。要获得相同的高度,您应对所有scaleY
项使用相同的ImageView
值。
还要考虑为此目的使用TableLayout
或GridLayout
。