Estoy usando MotionLayout con un scene-xml:
<Transition
motion:constraintSetStart="@+id/start"
motion:constraintSetEnd="@+id/end"
>
<OnSwipe
motion:touchAnchorId="@+id/v_top_sheet"
motion:touchRegionId="@+id/v_top_sheet_touch_region"
motion:touchAnchorSide="bottom"
motion:dragDirection="dragDown" />
</Transition>
Los 2 ConstraintSets
hacen referencia solo a 2 ID de vista: v_notifications_container
y v_top_sheet
.
En mi actividad, quiero configurar un ClickListener normal en una de las otras vistas en este MotionLayout:
iv_notification_status.setOnClickListener { Timber.d("Hello") }
Esta línea se ejecuta, pero ClickListener nunca se activa. Busqué otras publicaciones, pero la mayoría de ellas tratan de configurar un ClickListener en la misma Vista que es motion:touchAnchorId
. Este no es el caso aquí. ClickListener está configurado en una Vista que no se menciona ni una vez en la configuración de MotionLayout. Si elimino el app:layoutDescription
atributo, el clic funciona.
También intenté usar setOnTouchListener
, pero tampoco se llama nunca.
¿Cómo puedo configurar un oyente de clics dentro de MotionLayout?