Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:在具有动态高度的列表项中添加分隔符_Android_Android Layout - Fatal编程技术网

Android:在具有动态高度的列表项中添加分隔符

Android:在具有动态高度的列表项中添加分隔符,android,android-layout,Android,Android Layout,我目前正在尝试创建一个类似于中的列表项。仍然缺少每个项目右侧按钮/图像旁边的垂直分隔线。大多数人似乎使用固定宽度的独立视图,但在我的例子中,高度不成比例。仅当我为分隔器本身或父相对物设置了固定高度时才会显示。可以让它自动缩放吗 列表项的布局XML如下所示: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

我目前正在尝试创建一个类似于中的列表项。仍然缺少每个项目右侧按钮/图像旁边的垂直分隔线。大多数人似乎使用固定宽度的独立视图,但在我的例子中,高度不成比例。仅当我为分隔器本身或父相对物设置了固定高度时才会显示。可以让它自动缩放吗

列表项的布局XML如下所示:

<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>