如何动态隐藏状态和导航栏完全?
我的应用通常会显示状态和导航栏。向下滚动时,两个条都应消失。
滚动后,我看到两个条都被清空。例如,“ ||| O
滚动前:
滚动后:
我希望导航栏完全隐藏,因此我的应用程序的浅棕色部分显示为全屏。我有Android v10。
这是我的代码:
View decorView = MainActivity.mainActivity.getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
状态栏也是如此。信息消失,但空白栏本身保留在屏幕上。我可以通过更改colorPrimaryDark样式属性来更改颜色。
<style name="Base.Theme.Deholtmans" parent="Theme.AppCompat.Light.NoActionBar">
...
<item name="colorPrimaryDark">@color/my_primary_dark</item>
或者,我使用IMMERSE_STICKY,但这与行为无关紧要。
[之前,我还尝试了这些样式项的组合:没有任何变化。
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowTranslucentNavigation">true</item>
我读了this famous post on full screen,但没有帮助。
另一个技巧无济于事:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
输入值>样式
现在在应用程序中使用主题
使导航栏翻译
<item name="android:windowTranslucentNavigation">true</item>
要删除它,使其颜色与您的布局匹配
<item name="android:navigationBarColor">@color/white</item>
或尝试一下
public void FullScreencall() {
if(Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower api
View v = this.getWindow().getDecorView();
v.setSystemUiVisibility(View.GONE);
} else if(Build.VERSION.SDK_INT >= 19) {
//for new api versions.
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
}
}
最好的前进方式是获得良好的开端。
通过this post,我在几秒钟内创建了一个新的演示应用程序,该应用程序动态支持全屏。现在,我可以设置其他步骤来弥合我的应用程序(仍然不是真正的全屏)和全屏演示应用程序之间的差距。我会及时通知您;-)
这种方法是一种不错的方法,因为到目前为止所有其他帖子/想法/建议都没有奏效。