работает как положено для меня

я есть NestedScrollView, заполненный вертикальным LinearLayout, который сам имеет группу дочерних элементов различных типов представлений: несколько TextViews, два статических GridViews и даже FrameLayout, чтобы показать фрагмент под всем этим.

При нажатии кнопки «Назад», если пользователь прокрутил ниже определенной точки, вместо завершения действия, вызывается метод «scrollToTop»:

public static void scrollToTop(final NestedScrollView scrollview) {
    new Handler().postDelayed(new Runnable() {
        public void run() {
            scrollview.fullScroll(NestedScrollView.FOCUS_UP);
        }
    }, 200);
}

Это работает в предыдущей версии моего приложения, которое находится в магазине Play. Но теперь, после обновления моего приложения до целевого Android Oreo (и обновления библиотеки поддержки до версии 26.0.2), вместо прокрутки вверх, кажется, что он начинает прокручиваться из-под исходного положения прокрутки NestedScrollView и останавливается там, где он был. Так что это выглядит как странное заикание. В некоторых позициях, однако, он прокручивается до вершины (хотя и очень редко и непоследовательно), а в других он фактически прокручивается до низа, по какой причине я не понимаю.

Я экспериментировал с фокусом зрения, но безрезультатно. Например, я прочитал, что Static GridViews могут прерывать фокус при прокрутке. Я также пробовал различные способы прокрутки вверх, такие как

scrollview.pageScroll(View.FOCUS_UP);

а также

scrollview.smoothScrollTo(0,0);

Но ничего не работает. Что-то не так с библиотекой поддержки на этот раз?

Ответы на вопрос(4)

Ваш ответ на вопрос