У меня есть такая иерархия представлений, вертикальный ScrollView с вертикальной LinearLayout, содержащей двух дочерних элементов:
ScrollView ->orientation:vertical, width:fill_parent, height: fill_parent
LinearLayout -> orientation:vertical, width:fill_parent, height: fill_parent
WebView -> width:fill_parent, height: fill_parent
GoogleAdView -> width:wrap_content, height:wrap_content
При прокрутке до конца веб-просмотра и нажатии на любую ссылку там, хотя страница загружается, полоса прокрутки остается внизу, а не перемещается вверх. Я могу программно установить прокрутку, используя scroll.fullScroll(ScrollView.FOCUS_UP)
, но это заставит полосу прокрутки заметно подскочить. Я попытался скрыть полосу прокрутки перед загрузкой страницы с помощью scrollView.setVerticalScrollBarEnabled(false)
, а затем повторно включить ее после загрузки страницы перед вызовом scroll.fullScroll(ScrollView.FOCUS_UP)
, но это все равно вызывает «скачок» полосы прокрутки.
WebView сам по себе намного лучше обрабатывает прокрутку при изменениях страницы, выглядит так, будто скрывает полосу прокрутки, а затем отображает ее в верхней части страницы после загрузки. Есть ли способ сохранить это с помощью ScrollView?