2012-04-21 11 views
16

La pagina Android Design - Lists descrive "divisori di sezione". Sono consapevole che è possibile utilizzare addHeaderView() a ListView per un effetto simile. Vorrei utilizzare un "divisore di sezione" senza uno ListView, ma piuttosto uno LinearLayout.Aggiunta di "divisori di sezione" al mio layout?

Nello screenshot qui sotto, mi riferisco al testo blu "Telefono" e "Email" che ha anche una linea sotto di esso. L'immagine è da Android Design - Text Fields

enter image description here

Come posso fare per aggiungere al mio layout? È semplicemente una TextView più una linea orizzontale?

+2

Creare un'immagine di sfondo con una linea in basso e impostarla come sfondo in TextView. –

+0

@mirroredAbstraction Dovresti scriverlo come risposta dato che sembra essere la soluzione migliore finora. –

+0

Possibile duplicato di [Separatore disegno Android/Linea divisori nel layout?] (Http://stackoverflow.com/questions/5049852/android-drawing-separator-divider-line-in-layout) –

risposta

42

Stavo cercando lo stesso problema. ho trovato un modo semplice per dire l'applicazione che un texview è un separatore sezione:

<TextView 
    android:id="@+id/address_label" 
    style="?android:attr/listSeparatorTextViewStyle" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Address"/> 

La linea:

style="?android:attr/listSeparatorTextViewStyle" 

aggiungere la sottolineatura al testo e lo stile accordingli al defaulf "separatore "tema.

+5

Come cambiare il colore della sottolineatura? –

-1

TextView 2dp in altezza e larghezza = corrisponde al genitore e imposta il colore di sfondo come il colore che si desidera che la linea sia.

È possibile eseguire anche la verticale invertendo le due impostazioni.

4

Provare a mettere questa vista dopo il TextView di "telefono". In questa visualizzazione ho inserito un colore di sfondo che puoi modificare in base al tuo desiderio. Buona fortuna.

<View 
    android:layout_width="match_parent" 
    android:layout_height="2dip" 
    android:background="#FF909090" /> 
+0

Per favore pubblica qui il tuo codice anziché su pastebin. –

+0

Questo ha funzionato bene per me. Grazie! –

+2

Solo una breve osservazione ..Con questa soluzione dovresti usare px anziché dip, perché in schermi più piccoli può essere convertito in 0px e diventare invisibile. – Thpramos

2

Su richiesta del richiedente di questa domanda, sto scrivendo il mio commento come risposta

Creare un'immagine di sfondo con una linea in fondo, e impostarla come sfondo al vostro TextView .

3

La soluzione ha finito per avere un layout includable chiamato util_horizontal_line_section.xml:

<?xml version="1.0" encoding="utf-8"?> 

<View 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="1dip" 
    android:background="@color/sectionSeparatorColour"/> 

Con l'sectionSeparatorColour voce nel values/colors.xml:

<color name="sectionSeparatorColour">#a0a0a0</color> 

includable via:

<include layout="@layout/util_horizontal_line_section"/> 
Problemi correlati