我正试图在我的应用中隐藏状态栏。我正在使用c#和Xamarin来构建应用程序。
我从Activity OnCreate方法调用以下方法:
private void hideBars()
{
var decorView = this.Window.DecorView;
int uiOptions = (int)Android.Views.SystemUiFlags.LayoutStable |
(int)Android.Views.SystemUiFlags.LayoutHideNavigation |
(int)Android.Views.SystemUiFlags.Fullscreen |
(int)Android.Views.SystemUiFlags.ImmersiveSticky;
decorView.SystemUiVisibility = (Android.Views.StatusBarVisibility)uiOptions;
ActionBar.Hide();
}
工作正常 - 当应用程序第一次加载时,状态栏被隐藏,但可以按预期滑动。
如果我切换到另一个应用程序,然后恢复我的原始应用程序,状态栏可见,软键盘也是如此。我希望状态栏(和软键盘)在恢复时隐藏,就像在创建时一样。我有以下方法:
protected override void OnResume()
{
base.OnResume();
hideBars();
}
但状态栏(和键盘)仍然会在恢复应用时显示。
我还需要做什么?
答案 0 :(得分:1)
Window.AddFlags(WindowManagerFlags.Fullscreen);
Window.ClearFlags(WindowManagerFlags.ForceNotFullscreen);
这是来自粘性沉浸的android developer docs。
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
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
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
}