it-swarm.com.ru

Android нарисуйте горизонтальную линию между представлениями

У меня есть мой макет, как показано ниже:

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

Мое требование - провести по горизонтали линию между TextView и ListView

Может ли кто-нибудь помочь?

87
String

Он будет рисовать серебристо-серую линию между 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" />
240
Bhoomika Brahmbhatt

Вы должны использовать новый облегченный вид 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

20
vovahost

добавьте что-то подобное в ваш макет между представлениями, которые вы хотите разделить:

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

Надеюсь, поможет :)

17
zozelfelfo

Хорошая идея - создать его один раз и использовать там, где это необходимо. Добавьте это в вашем 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/Разделительная линия в макете?

10
onexf

попробуйте это

<View
    Android:layout_width="match_parent"
    Android:layout_height="2dp"
    Android:background="?android:attr/listDivider"/>
7
Xar-e-ahmer Khan
<View
       Android:id="@+id/view"
       Android:layout_width="match_parent"
       Android:layout_height="2dp"
       Android:background="#000000" />
4
Jitesh Dalsaniya

Вы можете поместить это представление между вашими взглядами, чтобы имитировать линию

<View
  Android:layout_width="fill_parent"
  Android:layout_height="2dp"
  Android:background="#c0c0c0"/>
2
Karan Datwani

попробуйте это

<View
    Android:layout_width="match_parent"
    Android:layout_height="1dp"
    Android:background="@Android:color/darker_gray"/>
1
Mostafa Hassan

Попробуйте это работает для меня

 <View
            Android:layout_width="1dp"
            Android:layout_height="match_parent"
            Android:background="@color/tw_composer />
1
Hiren Patel

В каждом родительском LinearLayout, для которого вы хотите разделить компоненты, добавьте Android:divider="?android:dividerHorizontal" или Android:divider="?android:dividerVertical.

Выберите подходящий между ними согласно ориентации вашего LinearLayout.

Пока я не знаю, этот стиль ресурса добавлен из Android 4.3.

1
Ravi Bhatt

Если вы не хотите использовать дополнительный вид только для подчеркивания. Добавьте этот стиль к вашему textView.

style="?android:listSeparatorTextViewStyle"

Недостатком является добавление дополнительных свойств, таких как

Android:textStyle="bold"
Android:textAllCaps="true"

который вы можете легко переопределить.

0
deepankar

Представление, цвет фона которого вы можете указать, подойдет (высота = несколько точек на дюйм). Посмотрел в реальном коде и вот он:

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

Обратите внимание, что это может быть View.

0
18446744073709551615

----> Простой

 <TextView
    Android:layout_width="match_parent"
    Android:layout_height="1dp"
    Android:background="#c0c0c0"
    Android:id="@+id/your_id"
    Android:layout_marginTop="160dp" />
0
shreedhar bhat