Animación del elemento del chat de Facebook Messenger onclick

Estoy intentando hacer que mi elemento de la list sea animado después de onClick (), Like Facebook messenger. Intenté hacer esto con animateLayoutChanges = true en el layout de mi elemento de list y también el layout principal de mi recyclerView, pero no es sencillo y tengo algún problema, después del primer clic cuando quiero mostrar los campos ocultos ( setVisibility (VISIBLE )), funciona no está mal, pero setVisibility (GONE) no funciona correctamente, así es como se ve
enter image description here

Y lo que estoy tratando de lograr es esto

enter image description here

¿Algún consejo sobre cómo hacer eso? esta es mi vista personalizada

class MessageItemView : RelativeLayout { constructor(context: Context) : super(context) constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) private var messageTextView: TextView private var dateTextView: TextView private var itemView: View? = null init { itemView = LayoutInflater.from(context)?.inflate(R.layout.live_chat_list_item, this) messageTextView = itemView?.findViewById(R.id.live_chat_msg_text_id) as TextView dateTextView = itemView?.findViewById(R.id.message_received_date_txt_id) as TextView } fun setUPViewModelData(message: MessageModel) { itemView?.setOnClickListener { dateTextView.visibility = if (dateTextView.visibility == View.VISIBLE) View.GONE else View.VISIBLE delivenetworking_status_txt_id.visibility = dateTextView.visibility } } 

Y esto es xml de esta vista

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:animateLayoutChanges="true" android:orientation="vertical"> <TextView android:id="@+id/message_received_date_txt_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:visibility="gone" /> <LinearLayout android:id="@+id/message_wrapper_layout_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/message_received_date_txt_id" android:orientation="vertical"> <TextView android:id="@+id/live_chat_msg_text_id" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> <TextView android:id="@+id/delivenetworking_status_txt_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/message_wrapper_layout_id" android:visibility="gone" /> </RelativeLayout> 

No entiendo lo que está mal en mi jerarquía de layout o lo que sería una buena architecture y también me interesó la jerarquía de layout de elementos de chat de postría de Fb … ¿Alguna eideas?

Elimine animateLayoutChanges de su layout y luego use TransitionManager desde la biblioteca de soporte:

 fun setUPViewModelData(message: MessageModel) { itemView?.setOnClickListener { TransitionManager.beginDelayedTransition(recyclerView) dateTextView.visibility = if (dateTextView.visibility == View.VISIBLE) View.GONE else View.VISIBLE delivenetworking_status_txt_id.visibility = dateTextView.visibility } } 
  • Firebase-Firerestre no puede usar dos documentos
  • Kotlin valor negativo negativo de retorno de modul
  • Escribir una function de Kotlin util que proporciona autorreference en el inicializador
  • Estudio de Android 3: Tiempo de ejecución de Kotlin desactualizado
  • Kotlin solo leyó propiedad con y sin getter
  • Firebase Firestre ¿cómo enumerar los documentos autorizados?
  • (Kotlin) propiedad tardía 'VAL variable' no se ha inicializado
  • Coincidencia de types no stantard en ElementUnion
  • método getter arrojando StackOverflowError
  • Cómo usar Data Binding y Kotlin en Android Studio 3.0.0
  • antes en Kotlin