Web视图添加hardwareAccelerated时的滚动问题为false
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web视图添加hardwareAccelerated时的滚动问题为false相关的知识,希望对你有一定的参考价值。
我制作了一个Web视图应用程序,在其中我显示了一个网站。网站上有一个侧面导航栏。当我在清单中放置hardwareAccelerated = false时,该导航显示没有任何问题。当我给出值true时,导航栏会以低速显示。当我在manifest中将值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());
}
});
}
答案
注意到WebView存在硬件加速问题。根据android docs,您在应用级别启用和禁用硬件加速。您是否尝试仅针对该特定Webview禁用它? 这将完成为
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
View.isHardwareAccelerated()的结果是什么?该网站是如何制作的?它是静态的html / css还是使用某种js框架?,例如jquery有硬件加速问题
在评论中你已经指出铬问题不会发生,所以你可以检查outchrome custom tab。这可以在您的应用程序中设置样式并进行控制
String url = ¨https://paul.kinlan.me/¨;
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(this, Uri.parse(url));
以上是关于Web视图添加hardwareAccelerated时的滚动问题为false的主要内容,如果未能解决你的问题,请参考以下文章
Android 控制硬加速 hardwareAccelerated
119 android:hardwareAccelerated="true"or"false"硬件加速的重要性