Ionic 3 - 在初始屏幕显示期间隐藏状态栏



我有一个装有 Ionic 3 的应用程序,在您的 app.component.ts 中,我使用 Statusbar ionic 插件来隐藏它,但是,这只有在平台就绪被触发后才会发生。

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

– 在启动画面期间不隐藏,只有在隐藏之后 – 在启动画面期间不更改背景颜色

解决 方案?

Android

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

  1. 查找主活动.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

我只能测试安卓设备。所以,我只是留下可能解决您问题的链接

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

任务:app:compileDebugJavaWithJavac FAILED E:\Ionic\AIOU_Solutions1\platforms\android\app\src\main\java\io\ionic\starter\MainActivity.java:38:错误:包窗口管理器不存在 getWindow((.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN(;

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

在飞溅过程中隐藏状态栏

选项 1 - 自行编辑文件

  • 查找文件平台/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" parent="@style/Theme.AppCompat.NoActionBar">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    </style>
    </resources>
    
  • 查找文件平台/android/app/src/main/AndroidManifest.xml

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

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

选项 2 - 从科尔多瓦配置中编辑文件.xml

  • 您可能更愿意直接从config.xml文件中管理此自定义主题,而无需自己编辑AndroidManifest.xmlstrings.xml。如果cordova platform remove androidcordova platform add android将删除您的更改,这会很有帮助。

  • 在配置中添加此内容.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" parent="@style/Theme.AppCompat.NoActionBar">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    </style>
    </edit-config>
    </platform>
    
  • 最后一步,请记住,为了能够使用config.xml文件中<edit-config>标签,您需要将此xmlns属性添加到<widget>标签中。

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

如果你有更好的选择,我很想听听!

相关内容

  • 没有找到相关文章

最新更新