2.2.10(Candy 2.2.10.1030)开始,BasePopup支持ContentView和Mask分开控制是否覆盖SystemBar。
在此之前,我们控制状态栏或者导航栏只有两个api可用:

  • setOverlayStatusbar:是否覆盖状态栏
  • setOverlayNavigationBar:是否覆盖导航栏

而在本次版本,我们在此基础上添加了两个api:

  • setOverlayStatusbarMode:设置状态栏覆盖模式(默认ContentView和Mask都覆盖)
  • setOverlayNavigationBarMode:设置导航栏覆盖模式(默认Mask覆盖,ContentView不覆盖)

本文详细描述SystemBar覆盖控制的使用及效果。

setOverlayStatusbar

是否覆盖状态栏

  • 如果设置为False,则ContentView和Mask都不覆盖,同时此时设置setOverlayStatusbarMode将会无效(模式将会被缓存)。
  • 如果设置为True,则使用上一次的OverlayStatusBarMode(缺省则取默认值)。
  • 下列展示皆采取默认模式(ContentView和Mask都覆盖) | setOverlayStatusbar(True) | setOverlayStatusbar(False) | | —- | —- | | device-2020-11-05-124512.png | device-2020-11-05-124452.png |

setOverlayStatusbarMode

  • 2.2.10(Candy 2.2.10.1030)开始添加

状态栏覆盖模式

  • **BasePopupFlag.OVERLAY_MASK**:允许Mask覆盖
  • **BasePopupFlag.OVERLAY_CONTENT**:允许ContentView覆盖
  • 上述两个Flag可以按位或起叠加效果 | OVERLAY_MASK | OVERLAY_CONTENT | OVERLAY_MASK | OVERLAY_CONTENT | | —- | —- | —- | | s1.png | o2.png | o3.png |

setOverlayNavigationBar

是否覆盖导航栏

  • 如果设置为False,则ContentView和Mask都不覆盖,同时此时设置setOverlayNavigationBarMode将会无效(模式将会被缓存)。
  • 如果设置为True,则使用上一次的OverlayNavigationBarMode(缺省则取默认值)。
  • 下列展示皆采取默认模式(Mask覆盖,ContentView不覆盖) | setOverlayNavigationBar(True) | setOverlayNavigationBar(False) | | —- | —- | | device-2020-11-05-125316.png | device-2020-11-05-125158.png |

setOverlayNavigationBarMode

  • 2.2.10(Candy 2.2.10.1030)开始添加

导航栏覆盖模式

  • **BasePopupFlag.OVERLAY_MASK**:允许Mask覆盖
  • **BasePopupFlag.OVERLAY_CONTENT**:允许ContentView覆盖
  • 上述两个Flag可以按位或起叠加效果 | OVERLAY_MASK | OVERLAY_CONTENT | OVERLAY_MASK | OVERLAY_CONTENT | | —- | —- | —- | | 11.png | 12.png | 13.png |