在Xamarin.Forms应用程序中,在MainActivity.cs中,我设置了沉浸式粘滞模式:
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
Xamarin.Forms.Forms.Init(this, bundle);
SetFullscreen();
LoadApplication(new App());
}
void SetFullscreen()
{
var uiOptions = (int)Window.DecorView.SystemUiVisibility;
uiOptions |= (int)SystemUiFlags.LowProfile;
uiOptions |= (int)SystemUiFlags.Fullscreen;
uiOptions |= (int)SystemUiFlags.HideNavigation;
uiOptions |= (int)SystemUiFlags.ImmersiveSticky;
Window.DecorView.SystemUiVisibility = (StatusBarVisibility)uiOptions;
Window.SetFlags(WindowManagerFlags.KeepScreenOn, WindowManagerFlags.KeepScreenOn);
}当一个带有Entry (输入框)的页面出现时,它就脱离了沉浸模式,所有的系统条都变得可见。当键盘被隐藏时,所有的条都保持可见。
还将Acr.UserDialogs与ShowLoading()结合使用。
如何始终保持沉浸式的状态?或者在关闭键盘和调用HideLoading() of UserDialogs时如何返回沉浸式模式
发布于 2018-05-28 22:03:14
我相信你要找的是IOnSystemUiVisibilityChangeListener接口。
创建一个您的侦听器:
class SystemUiVisibilityChangeListener : Java.Lang.Object, View.IOnSystemUiVisibilityChangeListener
{
public void OnSystemUiVisibilityChange([GeneratedEnum] StatusBarVisibility visibility)
{
if (visibility == StatusBarVisibility.Visible)
{
//your code here
}
}
}把它贴在你的装饰视图上:
View decorView = Window.DecorView;
decorView.SetOnSystemUiVisibilityChangeListener(new SystemUiVisibilityChangeListener());
var uiOptions = (int)decorView.SystemUiVisibility;
...如果这样做不起作用,您可能需要探索如何侦听键盘以隐藏;下面是一些让您开始使用How to capture the "virtual keyboard show/hide" event in Android?的研究
https://stackoverflow.com/questions/50566439
复制相似问题