Android Textview点击闪屏问题

Android Textview点击闪屏问题,第1张

概述最近在全局搜索里开发一个浏览器,碰到了底部点击新建窗口,闪屏,有时候点击事件还没反应按下去会显示主题,最后发现是对导航栏的处理问题,底部导航栏处理前需要判断是否可见,可见再隐藏,不可见就不用。/***隐藏虚拟按键,并且全屏*/publicstaticvoidhideBott

最近在全局搜索里开发一个浏览器,碰到了底部点击新建窗口,闪屏,有时候点击事件还没反应按下去会显示主题,最后发现是对导航栏的处理问题,底部导航栏处理前需要判断是否可见,可见再隐藏,不可见就不用。

    /**     * 隐藏虚拟按键,并且全屏     */    public static voID hIDeBottomUIMenu(AppCompatActivity context,Window window) {        //隐藏虚拟按键,并且全屏        if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower API            VIEw v = context.getwindow().getDecorVIEw();            v.setsystemUIVisibility(VIEw.GONE);        } else if (Build.VERSION.SDK_INT >= 19) {            //for new API versions.            VIEw decorVIEw = context.getwindow().getDecorVIEw();            final int uiOptions = VIEw.SYstem_UI_FLAG_HIDE_NAVIGATION                    | VIEw.SYstem_UI_FLAG_LAYOUT_HIDE_NAVIGATION                    | VIEw.SYstem_UI_FLAG_IMMERSIVE_STICKY;            if (isNavbarVisible(window)){                decorVIEw.setsystemUIVisibility(uiOptions);            }        }    }    public static boolean isNavbarVisible(@NonNull final Window window) {        boolean isVisible = false;        VIEwGroup decorVIEw = (VIEwGroup) window.getDecorVIEw();        for (int i = 0, count = decorVIEw.getChildCount(); i < count; i++) {            final VIEw child = decorVIEw.getChildAt(i);            final int ID = child.getID();            if (ID != VIEw.NO_ID) {                String resourceEntryname = getResnameByID(ID);                if ("navigationbarBackground".equals(resourceEntryname)                        && child.getVisibility() == VIEw.VISIBLE) {                    isVisible = true;                    break;                }            }        }        if (isVisible) {            // 对于三星手机,Android10以下非OneUI2的版本,比如 s8,note8 等设备上,            // 导航栏显示存在BUG:"当用户隐藏导航栏时显示输入法的时候导航栏会跟随显示",会导致隐藏输入法之后判断错误            // 这个问题在 OneUI 2 & androID 10 版本已修复            int visibility = decorVIEw.getsystemUIVisibility();            isVisible = (visibility & VIEw.SYstem_UI_FLAG_HIDE_NAVIGATION) == 0;        }        return isVisible;    }    private static String getResnameByID(int ID) {        try {            return ZSApplication.getAppContext().getResources().getResourceEntryname(ID);        } catch (Exception ignore) {            return "";        }    }
总结

以上是内存溢出为你收集整理的Android Textview点击闪屏问题全部内容,希望文章能够帮你解决Android Textview点击闪屏问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1052504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存