闪屏中的离子状态栏颜色

时间:2018-06-10 00:29:38

标签: android ionic-framework

我正在使用离子3处理一个简单的应用程序,该应用程序正在运行,但我在启动画面期间状态栏有问题,它是黑色的,我想改变颜色与闪屏相同的蓝色

enter image description here

我尝试使用Ionic Native - Splash Screen,它会改变状态栏的颜色,但是在启动画面之后

enter image description here

这里是代码

initializeApp() {
    this.platform.ready().then(() => {


      this.statusBar.overlaysWebView(false);
      this.statusBar.backgroundColorByHexString('#002e5b');
      this.keyboard.disableScroll(true);
    });
  }

有没有办法实现这个目标?感谢。

4 个答案:

答案 0 :(得分:3)

我有同样的问题。然后用叉子将其固定:

https://github.com/goinnn/cordova-plugin-splashscreen/tree/4.0.0%23colors

安装此货叉:

ionic cordova plugin rm cordova-plugin-splashscreen
ionic cordova plugin add https://github.com/goinnn/cordova-plugin-splashscreen.git#4.0.0#colors

如果出现此错误:

Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.

又一次(非常疯狂):

ionic cordova plugin add https://github.com/goinnn/cordova-plugin-splashscreen.git#4.0.0#colors

在您的config.xml中:

<platform name="android">
    <preference name="SplashStatusBarBackgroundColor" value="#YOUR_COLOR" />
    <preference name="SplashNavigationBarBackgroundColor" value="#YOUR_COLOR" />

Add a screenshot

答案 1 :(得分:0)

平台加载时显示

Splash screen。 平台准备就绪后,状态栏颜色将为#002e5b

this.platform.ready().then(() => {
  this.statusBar.overlaysWebView(false);
  this.statusBar.backgroundColorByHexString('#002e5b');
  this.keyboard.disableScroll(true);
});

我认为在此方法platform之前无法访问this.platform.ready()

答案 2 :(得分:0)

如果您使用单一颜色的飞溅作为背景,请将状态栏颜色更改为相同。

对于Android,请在styles.xml中添加以下内容(我显示的状态栏为白色背景)

    <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
        <item name="android:statusBarColor">@android:color/white</item>
    </style>

    <style name="AppTheme.NoActionBarLaunch" parent="AppTheme.NoActionBar">
        <item name="android:statusBarColor">@android:color/white</item>
    </style>

答案 3 :(得分:0)

我不知道这是否是正确的方法,但我没有找到其他方法。

这就是我所做的:

1-我删除了“闪屏”插件并再次添加,但这次是分叉。

ionic cordova 插件添加 https://github.com/goinnn/cordova-plugin-splashscreen.git#4.0.0#colors

2- 然后在这个路径:platforms\android\app\src\main\java\org\apache\cordova\splashscreen.java

更改这些代码行:

 // Inspirated in https://github.com/apache/cordova-plugin-splashscreen/pull/124/files
            String statusBarColor = preferences.getString("SplashStatusBarBackgroundColor", "#000000");

            if (statusBarColor != null && !statusBarColor.isEmpty() && Build.VERSION.SDK_INT >= 19) {

                splashWindow.clearFlags(0x04000000);
                splashWindow.addFlags(0x80000000);
                try {
                    // Using reflection makes sure any 5.0+ device will work without having to compile with SDK level 21
                    splashWindow.getClass().getMethod("setStatusBarColor", int.class).invoke(splashWindow, Color.parseColor(statusBarColor));
                } catch (Exception ignore) {
                    // this should not happen, only in case Android removes this method in a version > 21
                    LOG.w("SplashScreen StatusBarColor", "Method window.setStatusBarColor not found for SDK level " + Build.VERSION.SDK_INT);
                }
            }

3-在 config.xml 文件中添加此首选项:

<preference name="SplashStatusBarBackgroundColor" value="#50ABC5" />

是的,这对我有用。