RecyclerView GridLayoutManager在顶部和底部显示额外的边距

问题描述

我正在使用Recycler View和GridLayoutManager,它在图像的顶部和底部显示边距,这是我得到的:

My output

onBindViewHolder:

    @Override
    public void onBindViewHolder(@NonNull ImageViewHolder holder,int position) {
        Log.e(TAG,"in onBindViewHolder");
        Glide.with(mContext)
                .load(getUriFromMediaStore(position))
                .placeholder(new ColorDrawable(Color.LTGRAY))
                //.override(96,96)
                .centerCrop()
                .into(holder.imageView);
    }

image_item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/item_image"
        android:layout_width="136dp"
        android:layout_height="160dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:contentDescription="@string/im" />
</RelativeLayout>

activity_image_picker.xml:

<androidx.recyclerview.widget.RecyclerView 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/image_recycler_view"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context="com.example.myapplication.ImagePickerActivity" />

解决方法

只需在您的 ImageView

中添加以下行
android:scaleType="fitXY"

您的图片将使用完整的高度和宽度。