Wie kann ich dem Listenelement eine Auffüllung geben, wie ich es im Bild zeige? Ich möchte den Teiler im Layout wie im Bild gezeigt machen.
Das ist mein Listenfragmentcode
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="25dp"
android:layout_marginRight="25dp">
<ListView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:id="@+id/listV_main"
android:layout_marginLeft="25dp"
android:layout_marginRight="25dp"/>
Dies ist mein Listenabschnittscode
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp">
<include
android:id="@+id/list_item_section_text"
layout="@android:layout/preference_category"
/>
Dies ist mein Listenelementcode
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:adjustViewBounds="true"
android:paddingRight="?android:attr/scrollbarSize"
>
<ImageView
android:id="@+id/showlist_item_entry_drawable"
android:layout_width="82dp"
android:adjustViewBounds="true"
android:layout_height="68dp"
android:scaleType="fitXY"
android:paddingLeft="9dp"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginRight="6dip"
android:layout_marginTop="6dip"
android:layout_marginBottom="6dip"
android:layout_weight="1"
>
<TextView android:id="@+id/list_item_entry_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:ellipsize="marquee"
android:fadingEdge="horizontal" />
<TextView android:id="@+id/list_item_entry_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/list_item_entry_title"
android:layout_alignLeft="@id/list_item_entry_title"
android:textAppearance="?android:attr/textAppearanceSmall"
android:singleLine="true"
android:textColor="?android:attr/textColorSecondary" />
</RelativeLayout>
android
android-layout
Swap-IOS-Android
quelle
quelle
Antworten:
Verwenden Sie 'Einschub' .....
(list_divider.xml)
<?xml version="1.0" encoding="UTF-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetLeft="50dp" android:insetRight="50dp" > <shape> <solid android:color="@color/orange" /> <corners android:radius="2.0dip" /> </shape> </inset>
und in Ihrer Listenansicht wie folgt hinzufügen ...
<ListView android:dividerHeight="2dp" android:divider="@drawable/list_divider" ... />
Sie können den Einschubwert wie gewünscht einstellen ...
AKTUALISIEREN
Wie von @Giulio Piancastelli hervorgehoben, können Sie, wenn sich der Hintergrund des Listencontainers vom Hintergrund des Listenelements unterscheidet, ' Ebenenliste ' verwenden ...
(list_divider.xml)
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <solid android:color="@color/list_background" /> </shape> </item> <item android:left="10dp" android:right="10dp"> <shape android:shape="rectangle" > <solid android:color="@color/divider_color"/> </shape> </item> </layer-list>
und in Ihrer Listenansicht wie folgt hinzufügen ...
<ListView android:dividerHeight="2dp" android:divider="@drawable/list_divider" ... />
quelle
layer-list
anderen Seite auf dieser Seite vorgeschlagenen Lösung glaube ich, dass Ihre Lösung in einem solchen Fall niemals funktionieren könnte.Sie benötigen Polster für Trennwände? Erstellen Sie Ihre benutzerdefinierte Zeichenform wie folgt:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:left="10dp" android:right="10dp"> <shape android:shape="rectangle" > <solid android:color="@android:color/black" /> </shape> </item> </layer-list>
Und als Teiler für Ihre ListView in XML festlegen:
<ListView android:dividerHeight="2dp" android:divider="@drawable/custom_divider" ... />
UPD
Ich habe nur
ListView
in XML:<ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:dividerHeight="2dp" android:divider="@drawable/line" />
Teiler wie
line.xml
indrawable
:<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:left="10dp" android:right="10dp"> <shape android:shape="rectangle" > <solid android:color="@android:color/black" /> </shape> </item> </layer-list>
Nehmen Sie keine Änderungen am
ListView
In-Code vor. Sie können versuchen, Clean zu verwenden, wenn die Ressourcen falsch erstellt wurden.quelle
Wie @Giulio Piancastelli unter @ ASP-Antwort erwähnt hat,
<inset>
schlägt dies fehl, wenn die Hintergrundfarbe des Listencontainers nicht mit den Zeilen in der Liste übereinstimmt . Eine Lösung ist die Verwendung<layer-list>
wie folgt ://This item is to overlay the container colour with the row background colour <item android:left="0dp" android:right="0dp"> <shape android:shape="rectangle" > <solid android:color="@color/row_background" /> </shape> </item> //This item is the divider, put it at bottom so it will overlay the background colour <item android:left="92dp" android:right="0dp"> <shape android:shape="rectangle" > <solid android:color="@color/divider </shape> </item>
Dann können Sie es als Teiler festlegen, wie die meisten Antworten vermuten lassen:
<ListView android:dividerHeight="2dp" android:divider="@drawable/layer_list" ... />
quelle
Geben Sie in Ihrer Liste das Paddingtop für das Hauptlayout als an
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:padding="10dp" ....// Remaining fields > ... //Remaining items </LinearLayout>
quelle
Dies sollte eine alternative Lösung für diese Frage sein:
<View android:layout_width="match_parent" android:layout_height="1dp" android:layout_alignParentBottom="true" android:background="color/secondary_text" android:layout_marginTop="16dp" />
quelle
Stellen Sie die Höhe und Farbe Ihres Listenelementteilers ein:
<ListView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/listV_main" android:layout_marginLeft="25dp" android:layout_marginRight="25dp" android:divider="@android:color/darker_gray" android:dividerHeight="1dp"/>
quelle