Cordova - 应用启动时状态栏隐藏 - Android

8
我正在使用Cordova的StatusBarSplashScreen。我想让应用程序全屏启动,即在应用程序启动时隐藏状态栏。
deviceready回调中,我调用StatusBar.hide(),稍后我使用StatusBar.show()再次显示状态栏。这很好运行。
问题是当闪屏图像出现时,状态栏可见。当触发deviceready回调时,状态栏会隐藏。我甚至尝试将config.xml中的Fullscreen首选项设置为true,但结果相同。Hide at Startup配置仅与iOS相关。
有没有办法(仅使用Cordova)在不显示状态栏的情况下启动应用程序并稍后显示它?
注意:我正在使用SplashScreen插件显示闪屏屏幕。

你找到解决方案了吗?我也遇到了同样的问题。 - khashashin
1个回答

1

\platforms\android\app\src\main\java\com\yourpackage\name

中找到MainActivity.java

将以下内容添加到import部分:

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);
    }
}

这是来自Hyuck的回答代码片段:

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

对我来说很有效。


你是否使用了与此相反的方法来防止从本地视图(相机或视频)返回到webview时出现跳跃(由statusBar引起)?在这种情况下,状态栏会短暂地向下推动webview。 - user3919920

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接