как решить необычную проблему с временной задержкой при загрузке содержимого веб-просмотра

Я столкнулся с необычной проблемой при загрузке веб-просмотра с новым контентом.

  • Представьте себе приложение для чтения электронных книг, которое я собираюсь реализовать...

  • приложение, которое позволяет пользователю менять местами (прокручивать) экран назад и вперед, чтобы увидеть содержание главы (ничего, кроме чтения книги).

  • Книга, содержащая несколько глав, и я держу каждую главу на отдельной веб-странице.

  • когда начинается активность, я загружаю первую главу в веб-просмотр.

  • я загружаю новую главу, как только заканчивается одна глава (пользователь не знает о загрузке новой страницы в веб-представление, он просто перелистывает страницы вперед и назад)

  • после первой главы 2,3,4 ..n глав..

  • В следующей главе мне нужно разрешить пользователю перейти к предыдущей главе.

  • в некоторых условиях представьте, если пользователь закончит главу 1 и перейдет к главе 2. но пользователь может захотеть вернуться на предыдущую страницу. Тогда я должен загрузить главу 1.

  • я могу сделать это, загрузив предыдущую главу. но содержимое, видимое пользователю, не должно быть началом главы, оно должно быть концом главы. Итак, я прокручиваю до конца главы, см. конец кода ниже. Но логика не работает..

     public void fling(...){
     //swap forward
        if (end_of_page==false)
           scrollBy(480); 
        else if (end_of_page==true)
           webview.Load(); //load next chapter
    //swap backward
           if beginning_of_chapter==true && previous_chapter_exists==true
        webview.Load();  //load previous chapter 
        scrollBy(10000); //Scroll up to 10000 px so that i can get end of chapter
    

    Но проблема заключается в том, что веб-просмотр не будет прокручиваться до 10000 пикселей. bcoz оператор scrollBy(10000); выполняется до того, как предыдущая глава будет загружена в веб-просмотр (т.е. bcoz из-за задержки загрузки веб-просмотра).

Как я могу решить эту проблему?


person vnshetty    schedule 12.04.2011    source источник


Ответы (1)


Используйте onPageFinished для выполнения обработки после загрузки страницы.

person rajath    schedule 12.04.2011
comment
@Rajath DSouza, это метод нет? как это можно использовать? - person vnshetty; 12.04.2011
comment
Вам нужно переопределить этот метод в вашем подклассе WebViewClient. - person rajath; 12.04.2011
comment
Я думаю, это не должно иметь значения. Ты пробовал это? - person rajath; 12.04.2011
comment
См. stackoverflow.com/questions/5483030/ - person rajath; 12.04.2011
comment
Rajath DSouza я поместил scrollBy(10000) в onPageFinished(), но он не работает... та же проблема, он не прокручивается до последнего - person vnshetty; 12.04.2011
comment
См. stackoverflow.com/questions/4065134/ - person rajath; 12.04.2011