Jak umieścić poziomą linię dzielnika między tekstami edycji w działaniu

81

Wykonuję czynność, aby skonfigurować moją aplikację i muszę podzielić sekcje okna konfiguracji linią. Użyłem tego:, divider_horizontal_brightz tego przykładu:

http://android.cryx.li/doku.php?id=know:settings:start

Jednak to nie działa! Kiedy testuję na moim telefonie z Androidem, nie pokazuje poziomej linii. Czemu?

Używam Androida 2.1

NullPointerException
źródło

Odpowiedzi:

144

Wypróbuj ten link ... zasada pozioma

To powinno załatwić sprawę.

Poniższy kod to XML.

<View
    android:layout_width="fill_parent"
    android:layout_height="2dip"
    android:background="#FF00FF00" />
prolink007
źródło
dodaj tę linię-> android: layout_above = "@ + id / imageView2" dla niektórych względnych do linii show / view. To działa
gnganapath
Po prostu genialne! Próbowałem różnych metod. To działa najlepiej!
geeky_monster
137

Jeśli to nie zadziałało:

  <ImageView
    android:layout_gravity="center_horizontal"
    android:paddingTop="10px"
    android:paddingBottom="5px"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:src="@android:drawable/divider_horizontal_bright" />

Wypróbuj ten surowy widok:

<View
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="#000000" />
Cristian
źródło
9
+1 za dostarczenie pełnego przykładu widoku, a nie tylko atrybutów, i dla przykładu ImageView przy użyciu własnego podziału na Androida do rysowania. ImageView wydaje się preferowany, ponieważ używa stylu dostarczonego przez system / motyw.
spaaarky21
Świetne rozwiązanie zapewniające jedno i drugie. Wersja obrazu nie wyświetlała „paska”, więc wybrałem wersję View.
TheIcemanCometh
2
Świetna odpowiedź! Uwaga: prawdopodobnie trzeba dodać, android:scaleType="fitXY"aby rozwiązanie ImageView działało (może jest to potrzebne tylko w nowych wersjach Androida?)
Alberto M
1
Należy wymienić paddingz margin, w przeciwnym razie żadna z tych prac woli.
Ali Bdeir
7

Potrzebujesz tylko jednej linii

...
<View android:id="@+id/primerdivisor"
android:layout_height="2dp"
android:layout_width="fill_parent"
android:background="#ffffff" /> 
...
HENRY JIMENEZ ROSERO
źródło
4

Co powiesz na zdefiniowanie własnego poglądu? Użyłem poniższej klasy, używając LinearLayout wokół widoku, którego kolor tła jest ustawiony. To pozwala mi wstępnie zdefiniować dla niego parametry układu. Jeśli nie potrzebujesz tego, po prostu rozszerz Widok i zamiast tego ustaw kolor tła.

public class HorizontalRulerView extends LinearLayout {

    static final int COLOR = Color.DKGRAY;
    static final int HEIGHT = 2;
    static final int VERTICAL_MARGIN = 10;
    static final int HORIZONTAL_MARGIN = 5;
    static final int TOP_MARGIN = VERTICAL_MARGIN;
    static final int BOTTOM_MARGIN = VERTICAL_MARGIN;
    static final int LEFT_MARGIN = HORIZONTAL_MARGIN;
    static final int RIGHT_MARGIN = HORIZONTAL_MARGIN;

    public HorizontalRulerView(Context context) {
        this(context, null);
    }

    public HorizontalRulerView(Context context, AttributeSet attrs) {
        this(context, attrs, android.R.attr.textViewStyle);
    }

    public HorizontalRulerView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setOrientation(VERTICAL);
        View v = new View(context);
        v.setBackgroundColor(COLOR);
        LayoutParams lp = new LayoutParams(
            LayoutParams.MATCH_PARENT,
            HEIGHT
        );
        lp.topMargin = TOP_MARGIN;
        lp.bottomMargin = BOTTOM_MARGIN;
        lp.leftMargin = LEFT_MARGIN;
        lp.rightMargin = RIGHT_MARGIN;
        addView(v, lp);
    }

}

Używaj go programowo lub w Eclipse (widoki niestandardowe i biblioteki - po prostu przeciągnij je do swojego układu).

ChrisB
źródło
1

Użyj tego… Pokochasz to

 <TextView
    android:layout_width="fill_parent"
    android:layout_height="1px"
    android:text=" "
    android:background="#anycolor"
    android:id="@+id/textView"/>
Nikos Stasinos
źródło