使用API​​ <19隐藏导航栏和沉浸模式

时间:2018-07-26 21:45:00

标签: android android-studio

我正在开发一个Android应用程序,我试图使该应用程序完全处于沉浸式模式,甚至不会出现导航栏或操作栏,即使用户突然关闭该应用程序并从上次关闭的地方打开它也是如此。我使用以下代码实现了这一点:

public void onWindowFocusChanged(boolean hasFocus)
{
    super.onWindowFocusChanged(hasFocus);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | 
                           View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | 
                           View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | 
                           View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
                           View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | 
                           View.SYSTEM_UI_FLAG_FULLSCREEN);
}

但是,View.SYSTEM_UI_FLAG_HIDE_NAVIGATION是唯一可用于所有大于14的API级别的属性。其余属性需要API 16,而View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY需要的API至少为19。

是否有办法确保具有较低API的设备也将在应用程序中接收完全沉浸式模式?较低API上不起作用的属性使它成为可能,以便具有较低API设备的用户每次单击屏幕时都会看到弹出的导航栏/操作栏(这是不理想的,因为其中有很多按钮我的应用需要按)。

如果没有办法,我希望您认为对于少于20个API的导航栏是否弹出会很重要。 20%以下的手机运行API的百分比是多少?我有必要解决这个问题吗?

最后,我很抱歉可能未正确使用“ API”术语,或者听起来像是轻浮。我是Android Studio(和一般Android)的新手。

感谢您的帮助!

-Aneyth

0 个答案:

没有答案