Ich versuche, einem horizontalen linearen Layout einen Teiler hinzuzufügen, komme aber nicht weiter. Der Teiler wird einfach nicht angezeigt. Ich bin ein absoluter Neuling mit Android.
Dies ist mein Layout-XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/llTopBar"
android:orientation="horizontal"
android:divider="#00ff00"
android:dividerPadding="22dip"
android:showDividers="middle"
>
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="asdf" />
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="asdf"
/>
</LinearLayout>
</RelativeLayout>
android
android-layout
android-linearlayout
divider
Ahmed-Anas
quelle
quelle
Antworten:
Verwenden Sie dies für den horizontalen Teiler
und dies für vertikale Teiler
ODER wenn Sie den LinearLayout-Teiler für den horizontalen Teiler verwenden können
und in LinearLayout
Wenn Sie den vertikalen Teiler verwenden möchten, verwenden Sie ihn anstelle der
android:height="1dp"
Formandroid:width="1dp"
Tipp: Vergessen Sie den
android:showDividers
Artikel nicht.quelle
layout_width
undlayout_height
Werte durcheinander gebracht: denn horizontallayout_width
sollte"fill_parent"
undlayout_height
sollte sein"1dp"
. Sollte in ähnlicher Weise gegen den vertikalen Teiler ausgetauscht werden.Versuchen Sie dies, erstellen Sie einen Teiler im
res/drawable
Ordner:vertikale_divider_1.xml
Verwenden Sie das
divider
Attribut in LinearLayout wie folgt:Hinweis:
android:divider
ist nur in Android 3.0 (API Level 11) oder höher verfügbar.quelle
Es ist einfach, dem Layout einen Teiler hinzuzufügen. Wir benötigen keine separate Ansicht.
Über dem Code machen Sie einen vertikalen Teiler für
LinearLayout
quelle
Update: Pre-Honeycomb mit AppCompat
Wenn Sie die AppCompat-Bibliothek v7 verwenden, möchten Sie möglicherweise die
LinearLayoutCompat
Ansicht verwenden. Mit diesem Ansatz können Sie unter Android 2.1, 2.2 und 2.3 zeichnbare Teiler verwenden.Beispielcode:
drawable / divider.xml: (Teiler mit etwas Polsterung oben und unten)
Sehr wichtiger Hinweis: Die
LinearLayoutCompat
Ansicht wird nicht erweitertLinearLayout
und daher sollten Sie nicht die Eigenschaftenandroid:showDividers
oderandroid:divider
verwenden, sondern die benutzerdefinierten:app:showDividers
undapp:divider
. Im Code sollten Sie auch dasLinearLayoutCompat.LayoutParams
nicht dasLinearLayout.LayoutParams
!quelle
Ich bin heute auf dasselbe Problem gestoßen. Wie aus den vorherigen Antworten hervorgeht, beruht das Problem auf der Verwendung einer Farbe im Teiler-Tag und nicht auf einer Zeichnungsfarbe. Anstatt meine eigene zeichnbare XML zu schreiben, bevorzuge ich es jedoch, so oft wie möglich thematische Attribute zu verwenden. Sie können stattdessen android: attr / dividerHorizontal und android: attr / dividerVertical verwenden, um ein vordefiniertes Zeichen zu erhalten:
Die Attribute sind in API 11 und höher verfügbar.
Wie von bocekm in seiner Antwort erwähnt, fügt die Eigenschaft dividerPadding KEINE zusätzliche Polsterung auf beiden Seiten eines vertikalen Teilers hinzu, wie man annehmen könnte. Stattdessen definiert es die obere und untere Polsterung und kann daher den Teiler abschneiden, wenn er zu groß ist.
quelle
Sie können den eingebauten Teiler verwenden, dies funktioniert für beide Ausrichtungen.
quelle
Frustrierend ist, dass Sie die Anzeige der Trennlinien vom Code in Ihrer Aktivität aktivieren müssen. Beispielsweise:
quelle
Ihr Teiler wird möglicherweise aufgrund eines zu großen Teilers nicht angezeigt. Sie setzen 22dip, dh der Teiler wird von oben um 22dip und von unten um 22dip abgeschnitten. Wenn Ihre Layouthöhe kleiner oder gleich 44dip ist, ist kein Teiler sichtbar.
quelle
Wenn die Antwort von Kapil Vats nicht funktioniert, versuchen Sie Folgendes:
drawable / divider_horizontal_green_22.xml
layout / your_layout.xml
Ich bin auf ein Problem gestoßen, bei dem das Auffüllattribut nicht funktioniert hat. Daher musste ich die Höhe des Teilers direkt im Teiler festlegen.
Hinweis:
Wenn Sie es in vertikalem LinearLayout verwenden möchten, erstellen Sie ein neues wie folgt : drawable / divider_vertical_green_22.xml
quelle
Um gezeichnet zu werden,
LinearLayout
muss der Teiler von eine gewisse Höhe haben, währendColorDrawable
(was im Wesentlichen#00ff00
genauso gut ist wie jede andere fest codierte Farbe) dies nicht der Fall ist. Eine einfache (und korrekte) Möglichkeit, dies zu lösen, besteht darin, Ihre Farbe in eine FarbeDrawable
mit vordefinierter Höhe zu wickeln , z. B. zumshape
Zeichnenquelle
Sie müssen eine beliebige Ansicht für ein Trennzeichen wie Textansicht oder Bildansicht erstellen und dann den Hintergrund dafür festlegen, wenn Sie ein Bild haben, andernfalls die Farbe als Hintergrund verwenden.
Hoffe das hilft dir.
quelle