Проблема прокрутки в веб-представлении при добавлении оборудования - PullRequest
0 голосов
/ 19 октября 2018

Я сделал приложение для веб-просмотра, в котором я показываю веб-сайт.на сайте есть боковая панель навигации.Когда я ставлю в манифесте hardwareAccelerated = false, тогда эта навигация отображается без проблем.Когда я даю значение true, тогда эта панель навигации отображается с низкой скоростью.Моя проблема решается, когда я даю значение false в манифесте hardwareAccelerated, но из-за этого прокрутка веб-представления ведет себя некорректно.Он застревает в некоторых точках (дрожит) и автоматически прокручивается назад.
Какова возможная причина такого поведения?

 @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());
        }
    });
}

1 Ответ

0 голосов
/ 19 октября 2018

В WebView отмечены проблемы с аппаратным ускорением.Согласно android docs , вы включаете и отключаете аппаратное ускорение на уровне приложения.Вы пытались отключить его только для этого конкретного веб-просмотра?
это будет сделано как

webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);  

Каковы результаты View.isHardwareAccelerated ()?как сделан сайт?это статический html / css или использует какой-то js-фреймворк? Например, у jquery есть проблемы с аппаратным ускорением

в комментариях, которые вы указали, что эта проблема не возникает в Chrome, поэтому вы можете проверитьout Пользовательская вкладка Chrome .это можно стилизовать и контролировать в вашем приложении

String url = ¨https://paul.kinlan.me/¨;
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
CustomTabsIntent customTabsIntent = builder.build();
customTabsIntent.launchUrl(this, Uri.parse(url));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...