我有一个包含 ImageView 的 recyclerview。但每个图像的底部都有额外的空间。额外的空间是红色背景,如屏幕截图中所示。我希望所有图像并排放置。
这是我的 Activity 中用于定义布局管理器的代码
fun setupRecyclerView(recyclerView: RecyclerView) {
val adapter = PictureAdapter()
recyclerView.adapter = adapter
recyclerView.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
}
这是我的 recyclerview 中项目的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools">
<data>
<variable
name="viewModel"
type="com.my.app.viewModel.PictureViewModel" />
</data>
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="280dp"
app:imageUrl="@{viewModel.imageUrl}"
android:background="#ff0000"
android:adjustViewBounds="true"
android:scaleType="fitStart" />
</layout>
我正在用这个加载图像
@BindingAdapter({"bind:imageUrl"})
public static void loadImage(final ImageView view, String imageUrl) {
Picasso.with(view.getContext())
.load(imageUrl)
.into(view);
}
如何自动调整 ImageView 的高度以消除多余的间距?我不想裁剪我的图像。如果我将 wrap_content
放在 ImageView 的 layout_height
中,那么应用程序会变得很慢,滚动不平滑,而且我会得到很多
The application may be doing too much work on its main thread.
最佳答案
您必须使用交错的 gridview 而不是简单的 Gridview 。您必须使用 DynamicHeightImageview 来代替 imageview。这将自动调整图像高度并将图像依次放置,就像在 Pinterest 应用程序中一样。它完全解决了你的问题。谢谢
关于android - StaggeredGridLayout 中 imageview 的自动缩放高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34241972/