Android隐藏导航栏保持沉浸式模式与软键盘外观

Android隐藏导航栏保持沉浸式模式与软键盘外观,第1张

概述使用使用沉浸式模式的客户端应用程序,使用以下代码隐藏每个活动的导航栏和状态栏: int currentApiVersion = android.os.Build.VERSION.SDK_INT;final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAV 使用使用沉浸式模式的客户端应用程序,使用以下代码隐藏每个活动的导航栏和状态栏:
int currentAPIVersion = androID.os.Build.VERSION.SDK_INT;final int flags = VIEw.SYstem_UI_FLAG_LAYOUT_Stable            | VIEw.SYstem_UI_FLAG_LAYOUT_HIDE_NAVIGATION            | VIEw.SYstem_UI_FLAG_LAYOUT_FulLSCREEN            | VIEw.SYstem_UI_FLAG_HIDE_NAVIGATION            | VIEw.SYstem_UI_FLAG_FulLSCREEN            | VIEw.SYstem_UI_FLAG_IMMERSIVE_STICKY;// This work only for androID 4.4+if (currentAPIVersion >= 19) {        getwindow().getDecorVIEw().setsystemUIVisibility(flags);        // Code below is for case when you press Volume up or Volume down.        // Without this after pressing valume buttons navigation bar will        // show up and don't hIDe        final VIEw decorVIEw = getwindow().getDecorVIEw();        decorVIEw                .setonsystemUIVisibilitychangelistener(new VIEw.OnsystemUIVisibilitychangelistener() {                    @OverrIDe                    public voID onsystemUIVisibilityChange(int visibility) {                        if ((visibility & VIEw.SYstem_UI_FLAG_FulLSCREEN) == 0) {                            decorVIEw.setsystemUIVisibility(flags);                        }                }         });}

唯一的问题是,他们希望应用程序保持沉浸式模式,即使软键盘显示输入到EditText中也不会显示导航栏.任何人都可以想到总是使用导航按钮(背面/隐藏键盘,家庭等)的方法,即使在使用键盘时总是隐藏?

解决方法 我想出了一个解决方法,检查每个内部的导航栏的状态,尝试隐藏它,并再次检查(再次).

这是一些代码,确保在软键盘关闭后的2秒内导航栏被隐藏.

private final Runnable checksystemUIRunnable = new Runnable() {    @OverrIDe    public voID run() {      checkHIDesystemUI();    }  };  private voID checkHIDesystemUI() {    // Check if system UI is shown and hIDe it by post a delayed handler    if (issystemUIShown) {      hIDesystemUI();      handler.postDelayed(checksystemUIRunnable,SYstem_UI_HIDE_DELAY);    }  }  private voID hIDesystemUI() {    decorVIEw.setsystemUIVisibility(            VIEw.SYstem_UI_FLAG_LAYOUT_Stable                    | VIEw.SYstem_UI_FLAG_LAYOUT_HIDE_NAVIGATION                    | VIEw.SYstem_UI_FLAG_LAYOUT_FulLSCREEN                    | VIEw.SYstem_UI_FLAG_HIDE_NAVIGATION // hIDe nav bar                    | VIEw.SYstem_UI_FLAG_FulLSCREEN // hIDe status bar                    | VIEw.SYstem_UI_FLAG_IMMERSIVE);  }  // In onCreate()    decorVIEw.setonsystemUIVisibilitychangelistener(            new VIEw.OnsystemUIVisibilitychangelistener() {              @OverrIDe              public voID onsystemUIVisibilityChange(int visibility) {                if ((visibility & VIEw.SYstem_UI_FLAG_FulLSCREEN) == 0) {                  handler.postDelayed(checksystemUIRunnable,SYstem_UI_HIDE_DELAY);                  issystemUIShown = true;                } else {                  issystemUIShown = false;                }              }            });
总结

以上是内存溢出为你收集整理的Android隐藏导航栏/保持沉浸式模式与软键盘外观全部内容,希望文章能够帮你解决Android隐藏导航栏/保持沉浸式模式与软键盘外观所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存