Cordova Android状态栏设置为透明

Joh*_*ohn 5 android phonegap-plugins cordova

我正在尝试使用下面的插件将状态栏设置为透明.但我无法实现它,我可以将它改为不同的颜色,但不透明. https://github.com/apache/cordova-plugin-statusbar

它也适用于我的Android 5.0.2,但不适用于5.0.

我试着像他们建议的那样省略了十六进制值但是没有用,我尝试了下面的所有内容,没有一个将我的状态栏设置为透明.

<preference name="StatusBarBackgroundColor"/>

    <preference name="StatusBarStyle" value="lightcontent" />



if (cordova.platformId == 'android') {
StatusBar.styleBlackTranslucent();
}
Run Code Online (Sandbox Code Playgroud)

Mer*_*soy 8

我尝试了很长时间来解决这个问题。没有文档说明如何使状态栏对 Android 透明,包括填充<ion-header>

这就是我修复它的方法。在app.component.ts中平台准备就绪后:

if (this.platform.is('android')) {
   Plugins.StatusBar.setOverlaysWebView({overlay: true});
   Plugins.StatusBar.setBackgroundColor({color: '#33000000'});
}
Run Code Online (Sandbox Code Playgroud)

如果您希望状态栏透明,请不要设置背景颜色。在我的例子中,它将是一个不透明度为 20% 的黑色状态栏。

黑色状态栏,不透明度为 20%

当您在app.module.ts中导入其模块时,不要忘记强制 Ionic 进行状态栏填充。否则你的标题将粘在状态栏上:

IonicModule.forRoot({_forceStatusbarPadding: true})
Run Code Online (Sandbox Code Playgroud)

版本:

  • 离子本机/状态栏:^5.0.0
  • 电容器/机器人:^2.1.0

  • _forceStatusbarPadding 是一个内部参数,他们不建议使用它,但我找不到其他方法来获取状态栏填充https://github.com/ionic-team/ionic-framework/issues/15624#issuecomment-447091433 (2认同)

Era*_*evi -5

我刚刚发现它,他们的文档中没有提及,但它很简单:

\n\n
<preference name="StatusBarBackgroundColor" value="transparent" />\n
Run Code Online (Sandbox Code Playgroud)\n\n

瞧\xc3\xa0,它的工作:)

\n