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

NullPointerException
quelle

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" />
prolink007
quelle
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" />
Cristian
quelle
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" /> 
...
HENRY JIMENEZ ROSERO
quelle
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).

ChrisB
quelle
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"/>
Nikos Stasinos
quelle