Это связано с тем, что onTouch - не единственный способ взаимодействия с представлениями.
Для CollapsingToolbarLayout
сначала необходимо понять, что он предназначен для использования в качестве дочернего элемента AppBarLayout
.
AppBarLayout
- это почти вертикальная LinearLayout
, которая используется для реализации множества функций, относящихся к Material Design, включая функции прокрутки.Другими словами, этот макет - это то, что обрабатывает прокрутку для дочернего представления.
В источнике CollapsingToolbarLayout
посмотрите на метод onAttachedToWindow()
.Внутри этого метода вы увидите, что если родителем этой панели инструментов является AppBarLayout
, то он установит пользовательский OffsetUpdateListener
в метод addOnOffsetChangedListener()
своего родителя.Посмотрите дальше вниз на источник, чтобы увидеть определение его OffsetUpdateListener
.
То, что он делает, CollapsingToolbarLayout
говорит своему родителю (AppBarLayout)
, чтобы сказать себе, есть ли какие-либо изменения в 'смещении', котороепрокрутка
Так что CollapsingToolbarLayout
не нужно иметь переопределение 'OnTouch', потому что оно не обрабатывает прикосновения или прокрутку.Он просто позволяет своему родителю обрабатывать прокрутку, в то время как он просто сообщает родителю, чтобы он знал, когда он должен реагировать, другими словами ... когда он должен свернуться или развернуться.