119

我的布局如下:

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

<TextView
        android:id="@+id/textView1"
        style="@style/behindMenuItemLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:text="Twitter Feeds"
        android:textStyle="bold" />

    <ListView
        android:id="@+id/list"
        android:layout_width="350dp"
        android:layout_height="50dp" />

    <TextView
        android:id="@+id/textView1"
        style="@style/behindMenuItemLabel1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="1dp"
        android:text="FaceBook Feeds" />

    <ListView
        android:id="@+id/list1"
        android:layout_width="350dp"
        android:layout_height="50dp" />

</LinearLayout>

我的要求是在和之间画一条水平线TextViewListView

有人可以帮忙吗?

4

18 回答 18

313

TextView它将在&之间绘制银灰色线ListView

<TextView
    android:id="@+id/textView1"
    style="@style/behindMenuItemLabel1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="1dp"
    android:text="FaceBook Feeds" />

<View
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="#c0c0c0"/>

<ListView
    android:id="@+id/list1"
    android:layout_width="350dp"
    android:layout_height="50dp" />
于 2013-10-01T11:49:46.740 回答
24

您应该使用新的轻量级视图Space来绘制分隔线。如果您使用Space而不是View.

水平分隔线:

<android.support.v4.widget.Space
        android:layout_height="1dp"
        android:layout_width="match_parent" /> 

垂直分隔线:

<android.support.v4.widget.Space
        android:layout_height="match_parent"
        android:layout_width="1dp" />

您还可以添加背景:

<android.support.v4.widget.Space
        android:layout_height="match_parent"
        android:layout_width="1dp"
        android:background="?android:attr/listDivider"/>

使用示例:

....
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="One"/>

<android.support.v4.widget.Space
    android:layout_height="match_parent"
    android:layout_width="1dp"
    android:background="?android:attr/listDivider"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Two"/>

<android.support.v4.widget.Space
    android:layout_height="match_parent"
    android:layout_width="1dp"
    android:background="?android:attr/listDivider"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Three"/>
....

为了使用Space,您应该在build.gradle中添加依赖项:

dependencies {
    compile 'com.android.support:support-v4:22.1.+'
}

文档https://developer.android.com/reference/android/support/v4/widget/Space.html

于 2015-05-26T15:42:14.420 回答
23

在要分离的视图之间的布局中添加类似的内容:

  <View
       android:id="@+id/SplitLine_hor1"
       android:layout_width="match_parent"
       android:layout_height= "2dp"
       android:background="@color/gray" />

希望能帮助到你 :)

于 2013-10-01T11:48:24.307 回答
19

创建一次并在需要的地方使用它是一个好主意。在你的styles.xml中添加这个:

<style name="Divider">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">1dp</item>
    <item name="android:background">?android:attr/listDivider</item>
</style>

并将其添加到需要行分隔符的 xml 代码中:

<View style="@style/Divider"/>

最初由 toddles_fp 回答了这个问题:Android Drawing Separator/Divider Line in Layout?

于 2016-08-26T07:44:08.977 回答
12

尝试这个

<View
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:background="?android:attr/listDivider"/>
于 2015-08-31T13:20:33.050 回答
6
<View
       android:id="@+id/view"
       android:layout_width="match_parent"
       android:layout_height="2dp"
       android:background="#000000" />
于 2013-10-01T11:55:36.083 回答
5

多年后,终于有了在 XML 布局上显示分隔符/分隔线/水平线的正确视图。为 Android 开发 Material Components 的团队发布了 1.5.0-alpha01 版本,其中添加了MaterialDivider该类。如前所述,这允许向布局添加分隔符。

首先,在您的 build.gradle 中添加以下内容:

implementation 'com.google.android.material:material:1.5.0-alpha01'

然后,在 XML 布局上,您可以编写:

<com.google.android.material.divider.MaterialDivider
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

瞧,你有一个分隔线。如果要自定义分隔线的颜色,有一个xml属性:app:dividerColor. 此视图还允许通过样式进行主题化。有关更多信息,您可以查看此链接

于 2021-07-28T00:32:34.887 回答
3

Bhoomika接受的答案的改进,以获得更优雅的外观:

<View
     android:layout_width="match_parent"
     android:layout_height="1dp"
     android:background="@android:color/black"
     android:alpha="0.1"/>

android:alpha用于设置视图的不透明度。

于 2021-09-05T12:24:13.030 回答
2

您可以将此视图放在您的视图之间以模仿行

<View
  android:layout_width="fill_parent"
  android:layout_height="2dp"
  android:background="#c0c0c0"/>
于 2015-08-10T13:17:34.137 回答
2

试试这个对我有用

 <View android:layout_width="1dp"
       android:layout_height="match_parent"
       android:background="@color/tw_composer" />
于 2016-07-01T11:34:42.720 回答
1

LinearLayout在您希望在组件之间设置分隔符的每个父级中,添加android:divider="?android:dividerHorizontal"android:divider="?android:dividerVertical

根据您的LinearLayout.

直到我知道,这种资源样式是从 Android 4.3 添加的。

于 2013-10-01T12:32:01.627 回答
1

尝试这个

<View
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="@android:color/darker_gray"/>
于 2015-11-30T12:57:28.967 回答
1

创建水平线

如果您使用的是 TextView,然后您想放置 Line,那么以这种方式使用 View,您可以使用任何颜色,如蓝色、红色或黑色提及背景颜色。

 <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@android:color/black"></view>

在此处输入图像描述

于 2020-09-08T22:21:30.687 回答
0

您可以指定其背景颜色的视图(高度=几个 dpi)。查看真实代码,这里是:

        <LinearLayout
            android:id="@+id/lineA"
            android:layout_width="fill_parent"
            android:layout_height="2dp"
            android:background="#000000" />

请注意,它可能是任何类型的View.

于 2013-10-01T11:48:49.863 回答
0

 <view
        android:id="@+id/blackLine"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#000000"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"/>

app:layout_constraintStart_toStartOf="parent"/>

于 2021-01-08T19:16:58.010 回答
0

----> 简单的一个

 <TextView
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:background="#c0c0c0"
    android:id="@+id/your_id"
    android:layout_marginTop="160dp" />
于 2016-02-09T11:47:18.253 回答
0

如果您不想仅为下划线使用额外的视图。将此样式添加到您的textView.

style="?android:listSeparatorTextViewStyle"

只是不利的一面是它会添加额外的属性,例如

android:textStyle="bold"
android:textAllCaps="true"

您可以轻松覆盖它。

于 2016-01-12T02:38:27.630 回答
0

适合我的工作是

    <view
    android:layout_below="@+id/kaimla_number"
    android:layout_width="match_parent"
    android:layout_height="3dp"
    android:background="@color/golden"></view>
于 2020-12-08T11:13:59.387 回答