离子3-在启动画面显示期间隐藏状态栏

时间:2018-06-21 19:53:24

标签: ionic-framework ionic2 ionic3 ionic-native

我有一个带有Ionic 3的应用程序,并且在您的app.component.ts中,我使用Statusbar ionic插件将其隐藏,但这仅在平台就绪被触发后才会发生。

在启动画面期间如何隐藏它?我尝试过:

–在启动屏幕期间不隐藏,仅在此隐藏之后 –在启动画面期间不更改背景颜色

解决方案?

3 个答案:

答案 0 :(得分:4)

Android

似乎没有优雅的方法可以在应用启动时隐藏状态栏。 但是有一种方法可以做到这一点。

  1. 找到 MainActivity.java (也许是platforms/android/src/io/ionic/starter
  2. 添加以下代码

import android.view.WindowManager;

public class MainActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        // enable Cordova apps to be started in the background
        Bundle extras = getIntent().getExtras();
        if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
            moveTaskToBack(true);
        }
        // [Hyuck] add this two line below    
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
    }

    // [Hyuck] onStart() is totally new.
    @Override
    public void onStart()
    {
        super.onStart();
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    }
}

IOS

我只能测试Android设备。因此,我只留下the link可能会解决您的问题

答案 1 :(得分:0)

在MainActivity页面中添加代码后 我运行命令来构建apk 我收到此错误

 Task :app:compileDebugJavaWithJavac FAILED
E:\Ionic\AIOU_Solutions1\platforms\android\app\src\main\java\io\ionic\starter\MainActivity.java:38: error: package WindowManager does not exist
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

答案 2 :(得分:0)

基于Cordova的应用程序也遇到了同样的问题。在找到这种解决方案之前,我不知道如何在Splashcreen中隐藏状态栏(尝试了很多事情)。

在飞溅期间隐藏状态栏

选项1-自己编辑文件

  • 找到文件 platforms / android / app / src / main / res / values / strings.xml

  • 通过编辑XML添加具有特定规则的自定义主题

     <?xml version='1.0' encoding='utf-8'?>
     <resources>
         <string name="app_name">My App Name</string>
         <string name="launcher_name">@string/app_name</string>
         <string name="activity_name">@string/launcher_name</string>
    
         <!-- Add your custom theme rules -->
         <style name="MyCustomTheme">
             <item name="android:windowActionBar">false</item>
             <item name="android:windowNoTitle">true</item>
         </style>
     </resources>
    
  • 找到文件 platforms / android / app / src / main / AndroidManifest.xml

  • 找到<activity>标记并将引用添加到"MyCustomTheme"

     <activity android:theme="@style/MyCustomTheme" ...etc...
    

选项2-通过Cordova config.xml编辑文件

  • 您可能希望直接从config.xml文件管理此自定义主题,而不必自己编辑AndroidManifest.xmlstrings.xml。如果cordova platform remove androidcordova platform add android会删除您的更改,则可能会有所帮助。

  • 将此添加到您的config.xml中

      <platform name="android">
    
          <!-- Edit the activity tag fo your AndroidManifest.xml -->
          <edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity">
              <activity android:theme="@style/MyCustomTheme"/>
          </edit-config>
    
          <!-- Edit the strings.xml file -->
          <edit-config file="strings.xml" mode="add" target="/resources">
              <style name="MyCustomTheme">
                  <item name="android:windowActionBar">false</item>
                  <item name="android:windowNoTitle">true</item>
              </style>
          </edit-config>
    
      </platform>
    
  • 最后一步,请记住,为了能够使用<edit-config>文件中的config.xml标签,需要将此xmlns属性添加到<widget>标签中

      <?xml version='1.0' encoding='utf-8'?>
      <widget xmlns:android="http://schemas.android.com/apk/res/android" ...etc...
    

如果您有更好的选择,我很好奇!