MotionLayout предотвращает ClickListener во всех представлениях - PullRequest
1 голос
/ 21 апреля 2020

Я использую MotionLayout со сценой - 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>

2 ConstraintSets ссылаются только на 2 идентификатора вида: v_notifications_container и v_top_sheet.

В моей Деятельности я хочу установить обычный ClickListener для одного из других Представлений в этом MotionLayout:

iv_notification_status.setOnClickListener { Timber.d("Hello") }

Эта строка выполняется, но ClickListener никогда не запускается. Я искал другие сообщения, но большинство из них имеют дело с настройкой ClickListener в том же представлении, что и motion:touchAnchorId. Это не тот случай, здесь. ClickListener установлен на View, который ни разу не упоминался в настройке MotionLayout. Если я удаляю атрибут app:layoutDescription, щелчок срабатывает.

Я также пытался использовать setOnTouchListener, но он также никогда не вызывался.

Как установить щелчок слушатель в MotionLayout?

1 Ответ

0 голосов
/ 21 апреля 2020

Чтобы настроить действие onClick для вида, используйте:

android:onClick="handleAction"

внутри файла MotionLayout и определите «handleAction» в своем классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...