A menos que você tente estender a CardView
classe Android , você não pode personalizar esse atributo XML
.
No entanto, existe uma maneira de obter esse efeito.
Coloque um CardView
dentro de outro CardView
e aplique um fundo transparente ao seu exterior CardView
e remova o raio do canto ( "cornerRadios = 0dp"
). Seu interior CardView
terá um valor cornerRadius de 3dp, por exemplo. Em seguida, aplique um marginTop ao seu interior CardView
, de modo que seus limites inferiores sejam cortados pelos externos CardView
. Dessa forma, o raio do canto inferior do seu interior CardView
ficará oculto.
O código XML é o seguinte:
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view_outer"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_gravity="center"
card_view:cardBackgroundColor="@android:color/transparent"
card_view:cardCornerRadius="0dp"
card_view:cardElevation="3dp" >
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view_inner"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_marginTop="3dp"
card_view:cardBackgroundColor="@color/green"
card_view:cardCornerRadius="4dp"
card_view:cardElevation="0dp" >
</android.support.v7.widget.CardView>
</android.support.v7.widget.CardView>
E o efeito visual é o seguinte:
Sempre coloque seu conteúdo no seu Inner CardView
. O CardView externo serve apenas para "ocultar" os cantos arredondados inferiores do interno CardView
.