Android ScrollView, содержащий LinearLayout с поведением прокрутки WebView - PullRequest
2 голосов
/ 09 июня 2011

У меня есть такая иерархия представлений, вертикальный 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?

Ответы [ 3 ]

2 голосов
/ 09 июня 2011

Вы не можете надежно вставить WebView в ScrollView.

. Либо вставьте свое объявление в свой веб-контент, либо оставьте баннер неподвижным на экране, либо отработайте какой-либо другой триггер, чтобы анимировать, скрываяобъявление (например, уходит через 5 секунд).

0 голосов
/ 02 ноября 2011

Хитрость заключается в использовании loadDataWithBaseURL при загрузке содержимого в WebView.Простое выполнение loadData не приводит к сбросу смещения прокрутки.

0 голосов
/ 24 сентября 2011

Я решил это, добавив объявление в веб-просмотр.К сожалению, вы не сможете использовать какой-либо SDK рекламной сети, но это намного удобнее для пользователя.

Используйте вставку JavaScript, чтобы вставить свои объявления после загрузки веб-просмотра.

...