14

Ho visto quelli CardViews (non sono sicuro che siano anche CardViews) con divisori utilizzati in molte app, quindi immagino che ci sia un modo semplice per crearli. Volevo chiedere come è fatto esattamente? sono quelli anche CardViews?Cardview con divisori in esso

Non sono riuscito a saperne di più su di loro perché non conoscevo esattamente il nome dello View, quindi se qualcuno potesse indirizzarmi a un esempio con codice sarei grato.

esempio Image: enter image description here

+0

Penso che sia listitems con avere parametri di fondo e divisori in lista. – Meenaxi

risposta

17

È possibile utilizzare questo codice di questo può aiutare

<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> 
+0

si prega di rispondere anche a questo: http://stackoverflow.com/questions/36393540/no-shadow-elevation-underneath-second-card-if-there-are-two-card-in-the-layout –

+0

Semplice ma bello –

9

La schermata mostrata mostra un CardView normale con vista come divisorio nel mezzo. Non c'è DividerView o qualcosa di simile se stai cercando qualcosa di simile. Basta usare un semplice View con un'altezza e uno sfondo.

Ho qualcosa di simile in una mia biblioteca. Io lo uso per creare il divisore:

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

Sarà quindi simile a questa:

Divider

+0

per favore rispondi anche a questo: http://stackoverflow.com/questions/36393540/no-shadow-elevation-underneath-second-card-if-there-are-two-card-in-the-layout –

+0

di che colore stai usando ? – Caipivara

1

Set app: cardElevation = "0DP" quindi utilizzare un Vista - vedi sotto

<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> 
Problemi correlati