web-dev-qa-db-fra.com

Cardview avec diviseurs dedans

J'ai vu ces CardViews (je ne suis pas sûr qu'ils soient même CardViews) avec des séparateurs utilisés dans beaucoup d'applications, donc je suppose qu'il existe un moyen facile de les créer . Je voulais demander comment cela se faisait-il exactement? sont-ils même CardViews?

Je n'ai pas pu en savoir plus à leur sujet car je ne connaissais pas exactement le nom du View, donc si quelqu'un pouvait me diriger vers un exemple avec du code, je lui en serais reconnaissant.

Exemple d'image: enter image description here

20
Amer Mograbi

Vous pouvez utiliser ce code, cela peut vous aider

 <Android.support.v7.widget.CardView
        Android:id="@+id/cardview"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="@dimen/margin_large"
        Android:layout_marginRight="@dimen/margin_large"
        Android:elevation="100dp"
        card_view:cardBackgroundColor="@Android:color/white"
        card_view:cardCornerRadius="8dp">

        <LinearLayout
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:orientation="vertical">

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="50dp"
                Android:gravity="center_vertical"
                Android:paddingLeft="25dp">

                <TextView
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:text="Conversations" />
            </LinearLayout>

            <View
                Android:layout_width="match_parent"
                Android:layout_height="2dp"
                Android:background="@Android:color/darker_gray" />

            <LinearLayout
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:orientation="vertical"
                Android:paddingLeft="30dp"
                Android:paddingTop="20dp"
                Android:paddingBottom="10dp">

                <TextView
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:text="game" />
                    ...
            </LinearLayout>
        </LinearLayout>
    </Android.support.v7.widget.CardView>
24

La capture d'écran ci-contre montre un CardView normal avec des vues comme séparateur entre les deux. Il n'y a pas de DividerView ou quelque chose de similaire si vous recherchez quelque chose comme ça. Utilisez simplement un View simple avec une hauteur et un arrière-plan.

J'ai quelque chose de similaire dans une de mes bibliothèques. J'utilise ceci pour créer le diviseur:

<View
        Android:layout_width="match_parent"
        Android:layout_height="1dp"
        Android:background="@color/stroke"/>

card_library.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
              Android:layout_width="match_parent"
              Android:layout_height="wrap_content"
              Android:orientation="vertical"
              Android:paddingBottom="8dp">

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="8dp"
        Android:layout_marginRight="8dp"
        Android:gravity="center_vertical"
        Android:orientation="horizontal">

        <TextView
            Android:id="@+id/libraryname"
            style="@style/CardTitle"
            Android:fontFamily="sans-serif-condensed"
            Android:textStyle="normal"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:maxLines="1"/>

        <TextView
            Android:id="@+id/libraryversion"
            style="@style/CardTitle"
            Android:fontFamily="sans-serif-condensed"
            Android:textStyle="normal"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_marginLeft="4dp"
            Android:layout_marginTop="4dp"
            Android:gravity="left|bottom"
            Android:maxLines="1"
            Android:textSize="12sp"/>

        <TextView
            Android:id="@+id/librarycreator"
            style="@style/CardTitle"
            Android:fontFamily="sans-serif-condensed"
            Android:textStyle="normal"
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content"
            Android:layout_marginTop="2dp"
            Android:gravity="right"
            Android:maxLines="2"
            Android:textSize="14sp"/>
    </LinearLayout>

    <View
        Android:layout_width="match_parent"
        Android:layout_height="1dp"
        Android:layout_marginTop="4dp"
        Android:background="@color/stroke"/>

    <LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:gravity="center_vertical"
        Android:padding="4dp">

        <TextView
            Android:id="@+id/description"
            style="@style/CardText"
            Android:fontFamily="sans-serif-condensed"
            Android:textStyle="normal"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_marginLeft="8dp"
            Android:maxLines="20">
        </TextView>
    </LinearLayout>

</LinearLayout>

Cela ressemblera alors à ceci:

Divider

10
mikepenz

Définir l'application: cardElevation = "0dp" puis utiliser une vue - voir ci-dessous

<Android.support.v7.widget.CardView
Android:id="@+id/cv"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
app:cardElevation="0dp"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
xmlns:app="http://schemas.Android.com/apk/res-auto">

<!-- Insert UI elements -->

    <View
        Android:layout_width="fill_parent"
        Android:background="@Android:color/darker_gray"
        Android:layout_height="2dp"/>

</Android.support.v7.widget.CardView>
2
npr