Я столкнулся с необычной проблемой при загрузке веб-просмотра с новым контентом.
Представьте себе приложение для чтения электронных книг, которое я собираюсь реализовать...
приложение, которое позволяет пользователю менять местами (прокручивать) экран назад и вперед, чтобы увидеть содержание главы (ничего, кроме чтения книги).
Книга, содержащая несколько глав, и я держу каждую главу на отдельной веб-странице.
когда начинается активность, я загружаю первую главу в веб-просмотр.
я загружаю новую главу, как только заканчивается одна глава (пользователь не знает о загрузке новой страницы в веб-представление, он просто перелистывает страницы вперед и назад)
после первой главы 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 из-за задержки загрузки веб-просмотра).
Как я могу решить эту проблему?