3

我有一个包含 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_contentImageView 的layout_height那么应用程序变慢,滚动不流畅,我得到了很多

应用程序可能在其主线程上做了太多工作。

4

1 回答 1

-2

您必须使用 Staggered gridview 而不是简单的 Gridview 。代替 imageview,您必须使用 DynamicHeightImageview。这将自动调整图像高度并像在 Pinterest 应用程序中一样将图像一个接一个地放置。它完全解决了您的问题。谢谢

于 2015-12-12T19:09:31.833 回答