我希望在使用Xamarin.forms的Android应用程序中保持全局沉浸式模式。我已经阅读了一些博客和文章。 这个链接可以实现,但只能在我点击输入文本框或滚动屏幕之前生效,我想避免这种情况。 这个问题讨论了我的问题,但我不理解解决方案,也许它已经过时了。我的Android设备运行7.1版本,以下是我的代码:
我该如何解决这个问题?你能具体指出我应该在哪里放置新代码吗? 我对Xamarin.Forms不熟悉,它看起来很棘手。谢谢。
编辑:这段代码:
.Android
MainActivity
,void OnCreate
和void OnCreate
。public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity{
protected override void OnCreate(Bundle savedInstanceState){
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
LoadApplication(new App());
ImmersiveMode();
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults){
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
public void ImmersiveMode() {
int uiOptions = (int)(Forms.Context as Activity).Window.DecorView.SystemUiVisibility;
uiOptions |= (int)SystemUiFlags.Fullscreen;
uiOptions |= (int)SystemUiFlags.HideNavigation;
uiOptions |= (int)SystemUiFlags.ImmersiveSticky;
(Forms.Context as Activity).Window.DecorView.SystemUiVisibility = (StatusBarVisibility)uiOptions;
}
}
我该如何解决这个问题?你能具体指出我应该在哪里放置新代码吗? 我对Xamarin.Forms不熟悉,它看起来很棘手。谢谢。
编辑:这段代码:
this.Window.AddFlags(WindowManagerFlags.Fullscreen);
在.Android
的MainActivity
上隐藏了带有wifi信号、时间、蓝牙等的Android状态栏。是否有类似的命令隐藏这些安卓按钮?
![enter image description here](https://istack.dev59.com/qk223.webp)
ViewTreeObserver.IOnGlobalFocusChangeListener
接口。 - Mateus Henrique