Android状态栏与ActionBar重叠会发生什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (66)

我知道我可以使用ActionBar叠加层:requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY) 并可以在屏幕中切换/显示状态栏(通过在FLAG_FULLSCREENFLAG_FORCE_NOT_FULLSCREEN之间切换)。 这很好。但是,当我切换状态栏时,我不希望移动布局。

我知道我可以使用状态栏“覆盖”:

WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS

提问于
用户回答回答于
用户回答回答于

这不是完美的,但这就是实现了你想要的功能:

在onCreate:

getWindow()setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)。

然后:

private void hideStatusBar() {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);

}

private void showStatusBar() {
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

}

我还对这项activity有以下方式:

 <style name="readingStyle" parent="@style/Theme.Sherlock">
     <item name="android:windowActionBarOverlay">true</item>  
     <item name="windowActionBarOverlay">true</item>       
 </style> 

扫码关注云+社区