我制作了一个Web View应用程序,其中显示了一个网站。网站上有一个侧面导航栏。当我在清单中放置hardwareAccelerated = false时,该导航将毫无问题地显示。当我将值设为true时,该导航栏将以慢速显示。
当我将清单中的false值赋给hardwareAccelerated时,我的问题就解决了,但由于此Web视图的滚动行为不正确。它会卡在某些点(抖动)上并自动向后滚动。
这种行为的可能原因是什么?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView=findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setUseWideViewPort(true);
///CookieManager.getInstance().setCookie("https://helpers.ie/dashboard", "ci_session=ih5amh1qp52puqnqhv8a55iqnh005mqg");
webView.loadUrl("https://helpers.ie/dashboard");
webView.setWebViewClient(new WebViewClient() {
@SuppressWarnings("deprecation")
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
@TargetApi(android.os.Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError rerr) {
// Redirect to deprecated method, so you can use it in all SDK versions
onReceivedError(view, rerr.getErrorCode(), rerr.getDescription().toString(), req.getUrl().toString());
}
});
}
答案 0 :(得分:1)
WebView被发现存在硬件加速问题。根据{{3}},您正在应用程序级别启用和禁用硬件加速。您是否尝试过仅针对特定的Webview禁用它?
可以通过
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
View.isHardwareAccelerated()的结果是什么?该网站是如何制作的?是静态html / css还是使用某种js框架?例如,jquery的硬件加速问题
在注释中,您指出了Chrome上不会出现此问题,因此您可以查看android docs。可以在您的应用中设置样式和控制
String url = ¨https://paul.kinlan.me/¨;
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(this, Uri.parse(url));