Ronda sólo esquina superior de cardview

Quiero esquina sólo la parte superior de un cardview.

Utilicé debajo de la propiedad y está redondeando toda la esquina.

Quiero mostrar una superposición de todas las tarjetas

card_view:cardCornerRadius="4dp" 

Aquí está mi diseño

 <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="match_parent" card_view:cardCornerRadius="4dp" card_view:cardPreventCornerOverlap="false" > <RelativeLayout android:layout_width="match_parent" android:layout_height="100dp" android:id="@+id/re1"> <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="20dp" android:background="@color/colorAccent" android:text="contact det" android:gravity="center_vertical" android:textColor="@android:color/white" android:textSize="14dp"/> <TextView android:id="@+id/txtName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Name" android:gravity="center_vertical" android:textSize="10dp" android:layout_below="@id/title" android:layout_marginTop="10dp" android:layout_marginLeft="5dp"/> <TextView android:id="@+id/txtSurname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Surname" android:gravity="center_vertical" android:textSize="10dp" android:layout_below="@id/txtName" android:layout_marginTop="10dp" android:layout_marginLeft="5dp" /> <TextView android:id="@+id/txtEmail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Email" android:textSize="10dp" android:layout_marginTop="10dp" android:layout_alignParentRight="true" android:layout_marginRight="150dp" android:layout_alignBaseline="@id/txtName"/> <TextView android:id="@+id/txtAdd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Address" android:textSize="10dp" android:layout_alignLeft="@id/txtEmail" android:layout_alignBaseline="@id/txtSurname"/> </RelativeLayout> </android.support.v7.widget.CardView> 

Podemos establecer el marginBottom de la vista de la tarjeta en valor negativo.Margin debe ser el mismo valor que el radio de la tarjeta. Por ejemplo,

  <FrameLayout android:id="@+id/rootview" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.CardView android:id="@+id/card_view" android:layout_marginBottom="-3dp" project:cardCornerRadius="3dp" android:layout_width="match_parent" android:layout_height="match_parent"> <!--The child view inside the cardview should have extra padding,so that negative margin will not affect the bottom padding of its child.Here normally we have 16dp bottom padding for child + margin bottom of the parent is 3dp=19dp comes.--> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="19dp"/> </android.support.v7.widget.CardView> </FrameLayout> 

Funciona para mí. Pero estoy en duda si es la forma correcta de hacer. Cualquier sugerencia es bienvenida.

Android Cardview que le permite personalizar ronda esquina posición. Referencia: https://github.com/captain-miao/OptionRoundCardview Introduzca aquí la descripción de la imagen

Según la pregunta, estoy asumiendo que usted desea aplicar la propiedad del radio de la esquina a la tapa solamente de la tarjeta. Puede obtener este efecto utilizando dos CardView . Coloque un CardView dentro de otro CardView y elimine la propiedad de radio de esquina CardView externa. También aplique un fondo transparente a su CardView externo CardView Su CardView interior tendrá un valor cornerRadius de 4dp. A continuación, aplique un marginTop a su CardView interno, de modo que su parte inferior quede oculta por la CardView externa. De esta forma, el radio de la esquina inferior de su interior CardView se CardView .

Usted tendrá que poner su contenido xml en su CardView interno. El CardView externo sólo sirve para ocultar las esquinas redondeadas inferiores del CardView interior. Su diseño xml se verá así:

 <?xml version="1.0" encoding="utf-8"?> <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="match_parent" android:layout_gravity="center" card_view:cardBackgroundColor="@android:color/transparent" card_view:cardCornerRadius="0dp" card_view:cardElevation="4dp" > <android.support.v7.widget.CardView android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="3dp" card_view:cardElevation="0dp" card_view:cardCornerRadius="4dp" > <RelativeLayout android:layout_width="match_parent" android:layout_height="100dp" android:id="@+id/re1"> <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="20dp" android:background="@color/colorAccent" android:text="contact det" android:gravity="center_vertical" android:textColor="@android:color/white" android:textSize="14dp"/> <TextView android:id="@+id/txtName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Name" android:gravity="center_vertical" android:textSize="10dp" android:layout_below="@id/title" android:layout_marginTop="10dp" android:layout_marginLeft="5dp"/> <TextView android:id="@+id/txtSurname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Surname" android:gravity="center_vertical" android:textSize="10dp" android:layout_below="@id/txtName" android:layout_marginTop="10dp" android:layout_marginLeft="5dp" /> <TextView android:id="@+id/txtEmail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Email" android:textSize="10dp" android:layout_marginTop="10dp" android:layout_alignParentRight="true" android:layout_marginRight="150dp" android:layout_alignBaseline="@id/txtName"/> <TextView android:id="@+id/txtAdd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Address" android:textSize="10dp" android:layout_alignLeft="@id/txtEmail" android:layout_alignBaseline="@id/txtSurname"/> </RelativeLayout> </android.support.v7.widget.CardView> </android.support.v7.widget.CardView> 

He tomado referencia a esta pregunta SO: Pregunta . Espero que solucione su problema.

  • ¿Cómo puedo hacer que mi botón se parezca más al botón de acción flotante de Android JellyBean (v21)?
  • Eliminar TextView predeterminado del nuevo diseño de la actividad
  • Android: HorizontalScrollView en una fila ListView Elemento, problema de enfoque
  • ¿Cómo agregar un listview dentro de un viewpager?
  • ¿Cómo conservo el resaltado de elementos seleccionado en gridview cuando cambia numColumns?
  • Inicie una actividad desde una pantalla de Preferencia
  • Cómo deslizar las pestañas de la barra de herramientas mediante el diseño del material
  • Eliminar icono / logotipo de la barra de acción de android
  • Compatibilidad con barras de acción
  • Fragmento Google Maps de Google Maps en el xml. Me sale "prefijo de espacio de nombres inesperado"
  • Vista de imagen de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.