我正在开发一个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