防止状态或系统条出现在触摸或键盘颤振中

时间:2020-03-10 05:09:56

标签: android flutter dart

我有flutter应用,它将在平板电脑或android框中公开发布。我的应用应在全屏模式下运行。我在SystemChrome.setEnabledSystemUIOverlays([]);上有用户initState()

但是,问题在于,只要用户在顶部或底部滑动,状态和系统栏就会像在stackoverflow中的答案一样出现。公众可以通过后退按钮关闭或退出该应用。键盘输入外观也是如此。

在关闭应用程序之前,如何防止或隐藏状态和系统导航栏?该应用程序可以在管理员访问页面上关闭以退出该应用程序。在MainActivity.java上可以做些什么吗?我目前无法找到任何方法阻止应用程序运行时用户访问状态和系统栏。

在我以前使用的Xamarin表单中,有下面的代码是我从网上申请的:

//Remove title bar
RequestWindowFeature(WindowFeatures.NoTitle);
//Remove notification bar
Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen);
//Wake screen when app is added to task
Window.SetFlags(WindowManagerFlags.TurnScreenOn, WindowManagerFlags.TurnScreenOn);
//Keep screen on without timeout
Window.SetFlags(WindowManagerFlags.KeepScreenOn, WindowManagerFlags.KeepScreenOn);

if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
{
    var stBarHeight = typeof(Xamarin.Forms.Platform.Android.FormsAppCompatActivity).GetField("statusBarHeight", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
    if (stBarHeight == null)
    {
        stBarHeight = typeof(Xamarin.Forms.Platform.Android.FormsAppCompatActivity).GetField("_statusBarHeight", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
    }
    stBarHeight?.SetValue(this, 0);
}

0 个答案:

没有答案