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隐藏导航栏/保持沉浸式模式与软键盘外观所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)