#android #android-webview #android-viewpager
#Android #android-webview #android-viewpager
Вопрос:
Я хочу показать html-файлы книги epub в webview с помощью ViewPager. Текстовые файлы отображаются правильно, но страницы с изображениями отображаются некорректно (изображения не отображаются). Изображения появятся только после нажатия кнопки увеличения. После этого, когда я нажимаю кнопку уменьшения масштаба, изображение исчезает. Я попытался загрузить XML-файл (test.xml ), который содержит изображение. В первый раз это не загружает изображение. Но после того, как я переключился на портрет и вернулся к ландшафту, он показал изображение.
Он работает нормально, когда я попробовал тот же файл в WebView без ViewPager.
test.xml
?xml version='1.0' encoding='utf-8'?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Cover</title>
<style type="text/css" title="override_css">
@page {padding: 0pt; margin:0pt}
body { text-align: center; padding:0pt; margin: 0pt; }
div { margin: 0pt; padding: 0pt; }
</style>
</head>
<body>
<div>
<img src="cover1.jpg" alt="cover" style="height: 100%"/>
</div>
</body>
</html>
Когда я удалил свойство syle(), оно работает нормально. Это проблема с ViewPager?
Может ли кто-нибудь помочь мне решить эту проблему?
Ответ №1:
Я не знаю, что вызывает проблему, и вы должны попытаться выяснить, как этого избежать. Однако в качестве временного обходного пути вы можете попытаться добавить WebViewClient в свой WebView, который прослушивает onPageFinished ->, а затем перезагрузить страницу один раз. Что-то вроде (НЕ ПРОВЕРЕНО):
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished (WebView view, String url){
// Called when the page is finished loading
if(firstTime)
webview.loadUrl(url); // ONLY call this the first time!!
}
});