我有一个包含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
中,那么应用程序变慢,滚动不顺畅,而且我得到了很多
应用程序可能在其主线程上做了太多工作。
答案 0 :(得分:0)
具有固定layout_height的ScaleType fitStart可能导致adjustviewbound被忽略。尝试使用不同的scaleType而不是fixtStart或fixEnd。
答案 1 :(得分:-1)
您必须使用交错网格视图而不是简单的Gridview。并且代替imageview,您必须使用DynamicHeightImageview。这将自动调整图像高度并像Pinterest应用程序一样接一个地放置图像。它完全解决了你的问题。感谢