Я пишу пользовательский вид, который напрямую расширяет android.view.View
. Если я попытаюсь получить доступ к полям mScrollX
или mScrollY
, я вижу ошибку, что поле «не может быть разрешено или не является полем». source code for android.view.View имеет mScrollX, mScrollY и аналогичные переменные, объявленные protected
. Как мой прямой подкласс не может получить доступ к защищенным полям своего родительского класса? (Классы типа ScrollView, по-видимому, могут.)Защищенные поля, не видимые подклассам
P.S. Я понимаю, что могу позвонить getScrollX()
, но я хочу обновить эти поля; вызов setScroll()
имеет побочные эффекты, которые я не хочу.
Странные подклассы, даже находящиеся в других пакетах, могут получить доступ к защищенным переменным своего суперкласса. Я предполагаю, что вы используете неправильную версию. Можете ли вы показать код? –
Поведение подтверждено. –