【发布时间】:2021-04-11 17:51:49
【问题描述】:
我有一个recyclerview,它有多个视图类型。其中一个在布局中有imageview
<ImageView
android:id="@+id/img_rcv_msg_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
app:imgBottomRightCorner="10dp"
app:imgTopLeftCorner="10dp"
app:srcCompat="@android:drawable/ic_menu_report_image"
tools:ignore="ContentDescription" />
在 BindViewHolder 中,我使用 Glide 将图像加载到视图中
// I have added this
rcvImageView.apply {
layout(0,0,0,0)
}
Glide.with(activityContext).load(previewFile).into(rcvImageView)
我已经对代码进行了编程,因此图像文件的尺寸有效,因此适合屏幕。
但是,当我滚动recyclerView 时,相同的图像会以不同的大小显示......!!
为什么会这样?
编辑: 我在使用 Glide 设置图像之前添加了 layout(0,0,0,0),但现在的问题是,创建视图的时刻图像具有 0 尺寸,而 Glide 加载图像后的那一刻具有正确的尺寸。那一刻,所有上述项目都被向上推,因为已经创建的项目改变了它的高度!
【问题讨论】:
-
您是否以编程方式对其进行了编程以适应屏幕?还是像您在
android:scaleType中所做的那样? -
不,我只在 xml ImageView 属性中使用 scaleType。
-
谢谢。。请检查答案,如果您仍然遇到一些问题,请随时告诉我们
-
如何在 Glide 中以编程方式使用 fitXY?
-
您可以使用
centerCrop()、centerInside()或fitCenter()方法:请在此处查看stackoverflow.com/questions/34022552/…
标签: android android-layout android-recyclerview imageview android-glide