So setzen Sie eine horizontale Trennlinie zwischen Bearbeitungstexten in einer Aktivität


81

Ich mache eine Aktivität zum Konfigurieren meiner App und muss die Abschnitte meines Konfigurationsfensters durch eine Linie teilen. Ich habe folgendes verwendet : divider_horizontal_bright, aus diesem Beispiel:

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

Es funktioniert jedoch nicht! Wenn ich auf meinem Android-Handy teste, wird keine horizontale Linie angezeigt. Warum?

Ich benutze Android 2.1

Antworten:


144

Versuchen Sie diesen Link .... horizontale Regel

Das sollte den Trick machen.

Der folgende Code ist xml.

<View
    android:layout_width="fill_parent"
    android:layout_height="2dip"
    android:background="#FF00FF00" />

füge diese Zeile hinzu-> android: layout_above = "@ + id / imageView2" für einige relativ zu show / view line. Es funktioniert
Gnganapath

Einfach brilliant! Versuchte verschiedene Methoden. Das funktioniert am besten!
geeky_monster

137

Wenn das nicht funktioniert hat:

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

Versuchen Sie diese rohe Ansicht:

<View
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="#000000" />

9
+1 für die Bereitstellung des vollständigen Ansichtsbeispiels, nicht nur der Attribute, und für das ImageView-Beispiel unter Verwendung des Android-eigenen Zeichens. Die ImageView scheint vorzuziehen, da sie den vom System / Theme bereitgestellten Stil verwendet.
spaaarky21

Tolle Lösung für beides. In der Bildversion wurde die 'Leiste' nicht angezeigt, daher habe ich die Ansichtsversion gewählt.
TheIcemanCometh

2
Gute Antwort! Nur ein Hinweis: Man muss wahrscheinlich hinzufügen android:scaleType="fitXY", damit die ImageView-Lösung funktioniert (wird dies möglicherweise nur bei neuen Android-Versionen benötigt?)
Alberto M

1
Sie sollten ersetzen paddingmit margin, sonst keiner dieser arbeiten.
Ab

7

Für nur eine Zeile benötigen Sie

...
<View android:id="@+id/primerdivisor"
android:layout_height="2dp"
android:layout_width="fill_parent"
android:background="#ffffff" /> 
...

4

Wie wäre es, wenn Sie Ihre eigene Ansicht definieren? Ich habe die folgende Klasse verwendet und ein LinearLayout um eine Ansicht verwendet, deren Hintergrundfarbe festgelegt ist. Dadurch kann ich Layoutparameter dafür vordefinieren. Wenn Sie das nicht benötigen, erweitern Sie einfach die Ansicht und stellen Sie stattdessen die Hintergrundfarbe ein.

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);
    }

}

Verwenden Sie es programmgesteuert oder in Eclipse (Benutzerdefinierte Ansichten und Bibliotheksansichten - ziehen Sie es einfach in Ihr Layout).


1

Verwenden Sie diese ..... Sie werden es lieben

 <TextView
    android:layout_width="fill_parent"
    android:layout_height="1px"
    android:text=" "
    android:background="#anycolor"
    android:id="@+id/textView"/>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.