Expandir y contraer CardView

¿Cómo debo expandir y colapsar correctamente las visas de tarjeta? Hice el diseño para ellos, pero no sé cómo implementarlo. Gracias

Introduzca aquí la descripción de la imagen

Utilizar una vista de lista expandible con cardview

o incluso

Sólo puede necesitar utilizar el contenido de ajuste como la altura de cardview y utilizar textview dentro de él por debajo del título así que haga clic en hacer visible el texto y viceversa .

Pero no es mal diseño?

Nope no es si usted da alguna transición o animación cuando se expandió o colapso

Si está usando CardViews dentro de un ListView o RecyclerView vea mi respuesta para la forma recomendada de hacerlo: RecyclerView expand / collapse items

Si está usando CardView, haga esto en su onClickListener de cardview:

TransitionManager.beginDelayedTransition(cardview); detailsView.setVisibility(View.VISIBLE); 

De forma predeterminada, mantenga la visibilidad de sus detallesVer en GONE en su xml.

Utilicé un cardview y una sección de expansión item_description en el cardview. Para la parte de expansión creé un TextView debajo de la sección de encabezado ( LinearLayout / item_description_layout ) y cuando el usuario hace clic en el diseño de encabezado se llama a un método de expand / collapse. Aquí está el código en el cardview:

 <LinearLayout android:id="@+id/item_description_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:minHeight="48dp" android:paddingStart="16dp" android:paddingEnd="16dp" android:orientation="horizontal"> <TextView android:id="@+id/item_description_title" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="0.9" android:gravity="center_vertical" android:text="@string/description"/> <ImageView android:id="@+id/item_description_img" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="0.1" android:layout_gravity="center_vertical|end" app:srcCompat="@drawable/ic_expand_more_black_24dp"/> </LinearLayout> <TextView android:id="@+id/item_description" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingStart="16dp" android:paddingEnd="16dp" android:paddingBottom="16dp" android:gravity="center_vertical" android:visibility="gone" tools:text="description goes here"/> 

Aquí está el método que se llama. También agregué un ObjectAnimator para manejar la animación de expand / collapse del bloque. Se trata de una animación simple que utiliza la longitud del texto de descripción.

 void collapseExpandTextView() { if (mItemDescription.getVisibility() == View.GONE) { // it's collapsed - expand it mItemDescription.setVisibility(View.VISIBLE); mDescriptionImg.setImageResource(R.drawable.ic_expand_less_black_24dp); } else { // it's expanded - collapse it mItemDescription.setVisibility(View.GONE); mDescriptionImg.setImageResource(R.drawable.ic_expand_more_black_24dp); } ObjectAnimator animation = ObjectAnimator.ofInt(mItemDescription, "maxLines", mItemDescription.getMaxLines()); animation.setDuration(200).start(); } 
 mView.Click +=(sender, e) =>{ LinearLayout temp = mView.FindViewById<LinearLayout>(Resource.Id.LinerCart); if (vs == false) { temp.Visibility = ViewStates.Gone; vs = true; } else { temp.Visibility = ViewStates.Visible; vs = false; } }; 
  • AsyncTask cargando la imagen RecyclerView
  • La sombra CardView no se procesa cuando se convierte en mapa de bits
  • Diferentes resultados de CardView de la Biblioteca de soporte de Android en diferentes dispositivos
  • Las esquinas redondeadas cardView no funcionan en RecyclerView - Android?
  • Cómo agregar un recicladorVer dentro de otro recicladorVer
  • Adjuntar estilo CardView personalizado al tema
  • ¿Por qué explotan ViewRecycler onMeasure?
  • Cardview esquina fondo no transparente
  • Cambiar el color de fondo de CardView mediante programación
  • Diferente ancho de diseño dentro de RecyclerView y LinearLayout normal
  • Android RecyclerView LayoutManager Excepción
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.