Android:在具有动态高度的列表项中添加分隔符
我目前正在尝试创建一个类似于中的列表项。仍然缺少每个项目右侧按钮/图像旁边的垂直分隔线。大多数人似乎使用固定宽度的独立视图,但在我的例子中,高度不成比例。仅当我为分隔器本身或父相对物设置了固定高度时才会显示。可以让它自动缩放吗 列表项的布局XML如下所示:Android:在具有动态高度的列表项中添加分隔符,android,android-layout,Android,Android Layout,我目前正在尝试创建一个类似于中的列表项。仍然缺少每个项目右侧按钮/图像旁边的垂直分隔线。大多数人似乎使用固定宽度的独立视图,但在我的例子中,高度不成比例。仅当我为分隔器本身或父相对物设置了固定高度时才会显示。可以让它自动缩放吗 列表项的布局XML如下所示: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/sensors_list_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:padding="10dp" />
<TextView
android:id="@+id/sensors_list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:layout_toRightOf="@id/sensors_list_img"
android:paddingTop="5dp" />
<TextView
android:id="@+id/sensors_list_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:layout_below="@id/sensors_list_name"
android:layout_toRightOf="@id/sensors_list_img"
android:paddingBottom="5dp" />
<ImageView
android:id="@+id/sensors_list_details"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:padding="10dp"
android:src="@drawable/ic_angle_right" />
<View
android:id="@+id/sensors_list_divider"
android:layout_width="2dp"
android:layout_height="match_parent"
android:layout_toLeftOf="@id/sensors_list_details"
android:background="#ff0000" />
</RelativeLayout>
尝试指定与图像相关的高度,如:
android:alignTop="@id/myimage"
android:alignBottom="@id/myimage"
否则,您可以创建一个xml可绘制文件,并将其与图像视图一起使用:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke android:width="1dp" android:color="#000000"/>
</shape>
更新
请记住,android:shape=“line”
如果没有笔划就无法工作让我们使用线性布局
作为家长:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/sensors_list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:paddingTop="5dp" />
<TextView
android:id="@+id/sensors_list_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:paddingBottom="5dp" />
</LinearLayout>
<View
android:id="@+id/sensors_list_divider"
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#ff0000" />
<ImageView
android:id="@+id/sensors_list_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:src="@drawable/ic_angle_right" />
</LinearLayout>
您说图像视图缩放。看起来不是。它与父级高度匹配,而不是包裹内容。也许是天平里面的内容,你是对的。我这样做是为了让他们能够集中他们的内容,但这不是必要的。我改变了图片的宽度和高度来包装内容。不过,主要的问题仍然存在:单一视图无法扩展其高度以匹配其父视图的高度。请检查新的更新并告诉我结果。这不是他想要的。他想在物品里面放一个分隔器。将图像和其他项目分开。问题是列表项目内的垂直分隔符,而不是列表项目之间的垂直分隔符。对不起,为了简洁起见,在我的示例中,我删除了两个文本视图都引用的图像。我刚刚把它重新编辑了。除此之外,您的示例没有显示细红线。这正是我的问题:单个“视图”无法将其高度扩展到其父视图的高度。使用alignTop和alignBottom没有太大变化,特别是因为仍然需要布局高度。我用wrap\u content和match\u parent都试过了,但这两种情况下都看不到这一行。我将给可绘制图像视图一个镜头。无论如何,视图的高度与父视图的高度不匹配的原因是什么?有很多变通方法,但我对所有这些背后的原因特别感兴趣。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/sensors_list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:paddingTop="5dp" />
<TextView
android:id="@+id/sensors_list_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15sp"
android:paddingBottom="5dp" />
</LinearLayout>
<View
android:id="@+id/sensors_list_divider"
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#ff0000" />
<ImageView
android:id="@+id/sensors_list_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:src="@drawable/ic_angle_right" />
</LinearLayout>