Android 启动Daydream服务时是否隐藏导航栏?
我正在将Dreamservice添加到我的应用程序中,我想在梦中播放视频。与我在主要活动中隐藏导航控件时使用的代码大致相同Android 启动Daydream服务时是否隐藏导航栏?,android,dreamservice,Android,Dreamservice,我正在将Dreamservice添加到我的应用程序中,我想在梦中播放视频。与我在主要活动中隐藏导航控件时使用的代码大致相同 // Hide navigation controls View v = findViewById(R.id.dream); v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 导致白日梦破灭。看看其他一些白日梦,似乎也没有一个能遮住酒吧。有可能这样做吗?否则,我在做白日梦时播放的视频无法正确居中。尝
// Hide navigation controls
View v = findViewById(R.id.dream);
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
导致白日梦破灭。看看其他一些白日梦,似乎也没有一个能遮住酒吧。有可能这样做吗?否则,我在做白日梦时播放的视频无法正确居中。尝试一些不同的方法
View view = getWindow().getDecorView();
view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | view.getSystemUiVisibility());
任何getWindow()
或getDecorView()
都可能返回null
,尤其是在不做梦的情况下
记住。您可能需要定期重新应用此标志。如果
DreamService
是交互式的,它也不会在第一次输入事件时关闭,就在第二次输入事件时关闭。我知道这篇文章现在已经很老了,但因为它是搜索中唯一会出现的东西,所以我想记录一个事实:对我来说,设置View.SYSTEM\u UI\u FLAG\u HIDE\u NAVIGATION
是不够的。我还必须使用View.SYSTEM\u UI\u FLAG\u IMMERSIVE
。不知道为什么。我还应该提到,如果您只需在onAttachedToWindow()
中调用它一次,它就可以工作。在这种情况下,它也不会返回null,因为调用它时会有一个窗口。