Surface::setbuffersDimensions Log being spammed

倖福魔咒の 提交于 2019-12-01 15:03:34

These log come when we have EditText with cursor, And that cursor blink is responsible to redraw screen.

Surface::setBuffersDimensions(this=0x7f4ccc7c00,w=1080,h=1920)
D/OpenGLRenderer: WorkerThread 0x7f7c07f000 running

When I did

android:cursorVisible="false"

these logs were gone.

So when studio screen become spam with these logs, Its an alert for developer to check UI draw pattern.

This log means that something on your screen is being redrawn.
It is shown only on few devices, but whatever the device you are using, you can enable 'hardware layers updates' or 'gpu view updates' in developer options and you'll see flashed zone, which is being redrawn.
Moreover, if the issue exists on one device, it's likely that it exists on others too.

If anyone else finds this issue, make sure that you don't have something like a ProgressBar or so that you're not stopping from rendering after the WebView has finished loading. In Xamarin.Android, I had to override OnPageFinished, from the WebViewClient, and set progressBar.Visibility = ViewStates.Gone;. There's also a link in there to a GitHub repo (not mine) that has some other WebViewClient override implementations:

        public class MyWebViewClient : WebViewClient
    {
        public override bool ShouldOverrideUrlLoading(WebView view, string url)
        {
            view.LoadUrl(url);
            return false;
        }

        //More overrides: https://github.com/xamarin/monodroid-samples/blob/master/MonoIO/UI/MapFragment.cs
        public override void OnPageFinished(WebView view, string url)
        {
            base.OnPageFinished(view, url);
            progressBar.Visibility = ViewStates.Gone;
            view.Visibility = ViewStates.Visible;
        }

    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!