Criar um layout baseado em cards

Muitas vezes, os apps precisam exibir dados em contêineres com estilo semelhante. Esses contêineres são frequentemente usados em listas para armazenar as informações de cada item. O sistema fornece a API CardView como uma maneira fácil de mostrar informações dentro de cards que têm uma aparência consistente em toda a plataforma. Esses cards têm uma elevação padrão acima da visualização em grupo que os contém, fazendo com que o sistema exiba sombras abaixo deles. Os cards são uma maneira fácil de conter um grupo de visualizações e, ao mesmo tempo, fornecer um estilo consistente para o contêiner.

Figura 1. Exemplos de card

Adicionar as dependências

O widget CardView faz parte do AndroidX. Para usá-lo no seu projeto, adicione a seguinte dependência ao arquivo build.gradle do módulo do app:

Groovy

dependencies {
    implementation "androidx.cardview:cardview:1.0.0"
}

Kotlin

dependencies {
    implementation("androidx.cardview:cardview:1.0.0")
}

Criar cards

Para usar a CardView, adicione-a ao arquivo de layout. Use-o como uma visualização em grupo para conter outras visualizações. Neste exemplo, a CardView contém uma única TextView para exibir algumas informações ao usuário.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    ... >
    <!-- A CardView that contains a TextView -->
    <androidx.cardview.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_gravity="center"
        android:layout_width="200dp"
        android:layout_height="200dp"
        card_view:cardCornerRadius="4dp">

        <TextView
            android:id="@+id/info_text"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </androidx.cardview.widget.CardView>
</LinearLayout>

Os cards são exibidos na tela com uma elevação padrão, fazendo com que o sistema exiba uma sombra abaixo deles. Você pode fornecer uma elevação personalizada para um card com o atributo card_view:cardElevation. Isso criará uma sombra mais pronunciada com uma elevação maior, enquanto uma elevação mais baixa resultará em uma sombra mais clara. CardView usa a elevação real e sombras dinâmicas no Android 5.0 (API de nível 21) e versões mais recentes, mas usa uma implementação de sombra programática em versões anteriores.

Use estas propriedades para personalizar a aparência do widget CardView:

  • Para definir o raio do canto nos layouts, use o atributo card_view:cardCornerRadius.
  • Para definir o raio do canto no código, use o método CardView.setRadius.
  • Para definir a cor do plano de fundo de um card, use o atributo card_view:cardBackgroundColor.

Para saber mais, consulte a Referência da API para CardView.