Переопределение onInterceptTouchEvent в методе расширения - PullRequest
0 голосов
/ 01 февраля 2020

Можно ли переопределить метод onInterceptTouchEvent для ViewPager в методе расширения, как мы делаем для onTouch Событие

fun ViewPager.disableSwiping(): ViewPager {

    this.onInterceptTouchEvent = { ... }

    this.setOnTouchListener(object : View.OnTouchListener {
        override fun onTouch(v: View?, event: MotionEvent?): Boolean {
            return true
        }
    })
    return this
}

1 Ответ

1 голос
/ 01 февраля 2020

Нет.

onInterceptTouchEvent объявлено как:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev)

Вы не можете переопределить метод в функции расширения - они разрешены статически.

В в случае setOnTouchListener вы не переопределяете метод ViewPager, но переопределяете метод анонимного объекта типа View.OnTouchListener и передаете его методу ViewPager в качестве обычного аргумента - без магов c.

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