Я показываю математические выражения в webview (используя библиотеку jqmath и некоторый CSS). Одним из требований является то, что выражения должны быть в центре, и вот что я использую, чтобы добиться того, что:Содержание центра в android 4.4 webview
<html><head><style type='text/css'>html,body {margin: 0;padding: 0;width: 100%;height: 100%;}html {display: table;}body {display: table-cell;vertical-align: middle;text-align: center;}</style></head><body><p>here goes the expression</p></body></html>
С рендерингом математики занимает некоторое время, то WebView скрыт в то время как выражение рендеринг, и отображается только тогда, когда он готов к работе (как только вызывается onPageFinished
WebViewClient). Это хорошо работало до Android 4.4.
Проблема с новым веб-просмотром заключается в том, что он применяется только к CSS, когда он виден на экране. Таким образом, после выявления скрытого веб-представления выражение сначала появляется в верхнем левом углу, и только через ~ 0,1 секунды «прыгает» в центр. Это выглядит уродливо, так как я должен быстро отображать множество выражений.
В этом вопросе описывается связанная проблема: width:100% in CSS not rendering well in Android 4.4. Ответчик смог решить свою проблему, удалив display: table;
из html, но это не работает в моем случае.
Так есть ли способ либо: (а) заставить новую (на основе хрома) WebView для отображения контента в то время как не видно, или (б) отображать содержимое в центре с самого начала (без сначала отображая его в верхнем левом углу).
Что такое LayoutParams - это ваш WebView, прикрепленный к иерархии вида с помощью? Как сделать его видимым/невидимым? Любая другая специальная конфигурация? – ksasq