Mam podstawową stronę internetową, która poprawnie reaguje na zmiany rozmiaru i orientacji ekranu (przy użyciu zapytań o media CSS) wyświetlanych w przeglądarce Chrome na tablecie z Androidem (Nexus 7). Kiedy wyświetlam tę samą stronę w WebView, zapytania o media oparte na szerokości ekranu nie działają. Oto jak ja konfigurowania WebView:Android WebView i zapytania o media CSS
WebView webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.loadUrl("http://10.0.1.8:8080/cbc/test");
WebView poprawnie wykrywa zmiany orientacji w oparciu o zachowanie następujących zapytań mediów:
@media only screen and (orientation: portrait) {
.landscape { display: none; }
}
@media only screen and (orientation: landscape) {
.portrait { display: none; }
}
mediów zapytań za pomocą wymiarów ekranu nie działają poprawnie , ponieważ, zgodnie z następującym JavaScript, szerokość i wysokość ekranu pozostają stałe poprzez zmiany orientacji:
$("#dimensions").empty();
$("#dimensions").append($("<div>Width: " + screen.width + "</div>"));
$("#dimensions").append($("<div>Height: " + screen.height + "</div>"));
$("#dimensions").append($("<div>Depth: " + screen.pixelDepth + "</div>"));
i wywołać poprzednią współpracy de ze zdarzeniem "orientationchange". Podczas uruchamiania w Chrome na Androida wartości szerokości i wysokości są wyświetlane poprawnie, biorąc pod uwagę orientację urządzenia. Podczas pracy w WebView szerokość i wysokość pozostają stałe, niezależnie od orientacji.
Czy jest jakaś konfiguracja, którą muszę zastosować do WebView, aby uzyskać oczekiwane zachowanie?
Pytanie jest związane śledzenia szerokość i wysokość zapytań całej zmiany orientacji. Wybór w oparciu o gęstość pikseli nie pomoże tutaj. –