在PhoneGap应用中显示Android中的状态栏(即防止全屏)

时间:2013-08-14 17:04:47

标签: android android-layout cordova

我有一个phonegap 3.0.0应用程序。 我的应用程序涵盖状态栏(带时钟,接收信息等)。由于我不是全屏游戏,所以这是不可取的。

我相信它是作为“全屏”应用程序运行的。

我在堆栈上发现了相反的帖子(即让应用程序全屏显示)并做了相反的建议。我想知道PhoneGap或者我用来创建项目的PhoneGap CLI是否有变化,因为我的应用程序显示全屏。

我试过了:

  public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        super.setIntegerProperty("splashscreen", R.drawable.splash);

        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

        super.loadUrl(Config.getStartUrl(), 10000);
    }

明确告诉它不要处于全屏模式......但它仍然会全屏显示。

4 个答案:

答案 0 :(得分:39)

上面建议的本机代码可以使用,但更简洁的方法就是确保在config.xml中:

<preference name="fullscreen" value="true" />

你也可以将它设置为“false”,但它实际上是默认值,所以它不是必需的。适合我。

答案 1 :(得分:19)

我明白了。

Splashscreen插件必须将其设置为全屏。 通过在clearFlags之后调用super.loadUrl方法,一旦应用加载,状态栏就会显示出来。

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    super.setIntegerProperty("splashscreen", R.drawable.splash);
    super.loadUrl(Config.getStartUrl(), 10000);

    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

答案 2 :(得分:2)

在eclipse上的res / xml / config.xml中进行此更改。

<preference
    name="fullscreen"
    value="false" />

答案 3 :(得分:1)

// Hide status bar
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
// Show status bar
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

默认行为应该不是全屏,你是否修改了xml中的主题?

我找到的其他一些代码,以防万一:

private void toggleFullscreen(boolean fullscreen)
{
    WindowManager.LayoutParams attrs = getWindow().getAttributes();
    if (fullscreen)
    {
        attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    else
    {
        attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
    }
    getWindow().setAttributes(attrs);
}