当我在Android 4.4及更高版本上运行时,我正在我的应用中使用沉浸式模式.(http://developer.android.com/training/system-ui/immersive.html)
我的活动确实以全屏显示,我通过使用按下音量键setOnSystemUiVisibilityChangeListener.我也有类似的代码将对话框放入沉浸式模式.
但是,当显示对话框时,导航.酒吧跳到屏幕上,然后立即撤退.当对话被解雇时,情况更糟 - 导航.酒吧跳跃并调整背后的活动.
以下是我的支持沉浸式模式的课程.它只是在每个Activity的onResume上调用,并且在构建每个对话框时也会调用一个单独的函数.
我错过了任何旗帜或回调,还是已知的Android问题?
public class ImmersiveModeHelper {
public ImmersiveModeHelper(Activity activity)
{
mActivity = activity;
}
@SuppressLint("NewApi")
public void supportFullScreenImmersiveMode()
{
MyLog.d("ImmersiveModeHelper: supportFullScreenImmersiveMode: ");
// Support full-screen immersive mode on Android 4.4 and up
if (Build.VERSION.SDK_INT >= 19)
{
// Get the needed flags by reflection and use them
try
{
final int immersiveFlag = View.class.getField("SYSTEM_UI_FLAG_IMMERSIVE_STICKY")
.getInt(null);
final int hideNavigationFlag = View.class
.getField("SYSTEM_UI_FLAG_HIDE_NAVIGATION").getInt(null);
final int fullScreenFlag = View.class.getField("SYSTEM_UI_FLAG_FULLSCREEN").getInt(
null);
// Set the …Run Code Online (Sandbox Code Playgroud) android android-ui android-dialog android-activity android-4.4-kitkat