【问题标题】:Cordova Android status Bar set to transparentCordova Android 状态栏设置为透明
【发布时间】:2015-09-13 05:40:06
【问题描述】:

我正在尝试使用下面的这个插件将状态栏设置为透明。但我做不到,我可以把它改成不同的颜色,但不是透明的。 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();
}

【问题讨论】:

  • 你遇到过这种情况吗?我有同样的问题
  • 不适用于 Android 5.0....仅适用于之后的版本

标签: android cordova phonegap-plugins


【解决方案1】:

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

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

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

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

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

IonicModule.forRoot({_forceStatusbarPadding: true})

版本:

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

【讨论】:

  • Ionic 文档中仍然没有记录“_forceStatusbarPadding”是否有任何原因? ^^
  • _forceStatusbarPadding 是一个内部参数,他们不建议使用它,但我找不到另一种获取状态栏填充的方法github.com/ionic-team/ionic-framework/issues/…
【解决方案2】:

使用 IONIC Native Status Bar Plugin

app.component.ts:

import { Platform } from '@ionic/angular';
import { StatusBar } from '@ionic-native/status-bar/ngx';
...
...
constructor(private platform: Platform, private statusBar: StatusBar){
  this.initializeApp();
}

initializeApp() {
  this.platform.ready().then(() => {
    this.statusBar.overlaysWebView(true);
    this.statusBar.backgroundColorByHexString('#33000000');
  });
}

app.module.ts:

IonicModule.forRoot({_forceStatusbarPadding: true})

【讨论】:

    【解决方案3】:

    我刚找到它,在他们的文档中没有提到它,但它很简单:

    <preference name="StatusBarBackgroundColor" value="transparent" />
    

    瞧,它的工作原理:)

    【讨论】:

    • @Eusthace 你需要先安装插件 StatusBarBackgroundColor cordova plugin add cordova-plugin-statusbarcordova.apache.org/docs/en/latest/reference/…
    • 将上述行添加到 config.xml 根本不会使状态栏透明。
    • 这是一条旧评论,我猜他们从那时起就删除了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    相关资源
    最近更新 更多