如何消除适配器行布局上的间隙

时间:2019-01-08 02:10:49

标签: android android-layout recycler-adapter

我有一个用于适配器的布局行,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:id="@+id/title_related"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Ini Judul Related" />

        <TextView
            android:id="@+id/time_related"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="0dp"
            android:text="Jumat, 21 Desember 2018 04:45"
            android:textStyle="bold" />
    </LinearLayout>

    <ImageView
        android:id="@+id/image_related"
        android:layout_width="350dp"
        android:layout_height="200dp"
        android:layout_weight="2"
        android:paddingEnd="10dp"
        android:src="@drawable/picture"
        tools:ignore="RtlSymmetry" />

</LinearLayout>

我的问题是,在足够大的布局之间始终存在一个鸿沟。即使我删除了所有填充,例如左右填充。有没有我看不到的东西? 另外,显示如下: row layout with big gap
您可以复制此布局代码段并将其粘贴到测试布局中以查看问题。

3 个答案:

答案 0 :(得分:2)

问题出在您的ImageView上。您已经设置了android:layout_height="200dp",无论图像的实际大小如何,该视图都会将“视图高度”强制至少为200dp。由于您的父级布局为android:layout_height="wrap_content",因此您将获得上述行为。

解决此问题的一种方法是在android:layout_height="wrap_content"内设置ImageView。这种方法的缺点是,您无法控制ImageView的高度。如果实际图像高度为300dp,则视图将很大。

另一种方法是减小ImageView的高度。仅当您要对所有图像强制设置特定高度时才这样做。

答案 1 :(得分:1)

imageview的末尾有10dp填充。 另外,请尝试使用最小(/ max)高度和最小(/ max)宽度而不是绝对值。

您始终可以缩放图像,将scaletype设置为fitXY

答案 2 :(得分:1)

像下面的代码一样制作ImageView。这样将保持所需的宽度。

<ImageView
    android:id="@+id/image_related"
    android:layout_width="350dp"
    android:layout_height="wrap_content"
    android:scaleType="fitCenter"
    android:paddingEnd="10dp"
    android:src="@drawable/picture"
    tools:ignore="RtlSymmetry" />