Задать вопрос
@krolchonok

Как отключить жест «назад» на android при нажатии на floating button?

Добрый день, возник вопрос, создаю плавающую кнопку привязанную либо к левому, либо к правому краю, при попытке перетащить возникает проблема в том, что если тащить от края экрана появляется жест "назад" как отключить жест, если палец находится на кнопке?
windowManager = getSystemService(WINDOW_SERVICE) as WindowManager

        val inflater = getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater
        floatingButton = inflater.inflate(R.layout.floating_button, null)

        val params = WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT
        )

        params.gravity = Gravity.TOP or Gravity.START
        params.x = 0
        params.y = 0

        windowManager.addView(floatingButton, params)
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
402d
@402d
начинал с бейсика на УКНЦ в 1988
Боль же у Вас в том, что пользователь выходит из приложения, а не в наличие еще одного способа породить событие бакпрес. Например приложение с вложенной навигацией и возвратом наверх по бакам. Тут один лишний и вместо главного меню - вылет. Поэтому перекрывают метод onBackPress (сейчас стал депрекейтед) в главной активити.
Вводится флаг (внутреннее состояние) пришло первое событие - тоаст (нажми дважды). По таймеру сброс флага через ххх мс. Событие при поднятом флаге выход. Ну или там по сложнение логика.

В вашем случае, я бы отслеживал начало драг-энд-дроп. и пока после дропа не прошло 100-300 мс выход по бакпресу запрещал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
26 дек. 2024, в 15:04
3000 руб./за проект
26 дек. 2024, в 14:50
2000 руб./за проект
26 дек. 2024, в 14:40
15000 руб./за проект