最近在全局搜索里开发一个浏览器,碰到了底部点击新建窗口,闪屏,有时候点击事件还没反应按下去会显示主题,最后发现是对导航栏的处理问题,底部导航栏处理前需要判断是否可见,可见再隐藏,不可见就不用。
/** * 隐藏虚拟按键,并且全屏 */ 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点击闪屏问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)