我有一个用于适配器的布局行,如下所示:
<?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>
我的问题是,在足够大的布局之间始终存在一个鸿沟。即使我删除了所有填充,例如左右填充。有没有我看不到的东西?
另外,显示如下:
您可以复制此布局代码段并将其粘贴到测试布局中以查看问题。
答案 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" />