具有Webview的全屏活动仍然在顶部显示状态栏

时间:2010-06-24 02:12:04

标签: android

我有一个针对Android 1.5或更高版本的简单Android应用。我有一个活动设置为使用下面的主题(在清单中设置)。

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

在活动中,我有一个WebView(参见完整的XML :)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

    <WebView 
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

我相信我有onCreate代码设置来正确处理urlLoading(见下文)。在我测试此代码的模拟器中,状态栏不会显示在顶部。在我的目标设备上,这是一款运行Android 1.5且屏幕分辨率为800 x 480的Archos 7家用平板电脑,该应用程序可以运行,但状态栏显示在顶部。

知道为什么会这样吗?

主要活动的全部来源:

package com.bri.RestaurantLauncher;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class RestaurantLauncherMain extends Activity {

    private class RestaurantLauncherMainWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }
    } 

    WebView webview;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.main);

        this.webview = (WebView) findViewById(R.id.webview);
        webview.setWebViewClient(new RestaurantLauncherMainWebViewClient());
        this.webview.getSettings().setJavaScriptEnabled(true);
        this.webview.loadUrl("http://www.google.com");
    }
}

2 个答案:

答案 0 :(得分:2)

  

知道为什么会这样吗?

如果我不得不猜测,它与此相关:

  

在我的目标设备上,这是一个Archos   7家用平板电脑...

在战术上,ARCHOS 7平板电脑看起来像ARCHOS 5一样工作,状态栏上有HOME,BACK和MENU按钮。在这种情况下,Android上的ARCHOS riff可能不支持全屏模式,因为用户无法离开应用程序。您可以尝试一些已知支持全屏模式的现有开源项目,并了解它们的行为方式。例如,我的vidtry sample app全屏播放流媒体视频。

策略上,始终确保您的主要测试设备已安装Android电子市场。具有市场的设备必须通过兼容性检查,而其他设备则不通过。现在,如果你想要一个非市场设备只是为了一些轻量级测试,那很酷,但你会想要一些其他支持市场的Android设备来看看绝大多数Android用户的体验。

答案 1 :(得分:0)

感谢。我还在寻找一种方法来做到这一点。设备附带的一些应用程序(视频)确实隐藏了状态蝙蝠,但至少到目前为止,我还没有能够这样做。我不打算为最终用户构建一个消费者应用程序,因此市场访问在这一点上并不重要。终极应用程序将与硬件一起作为交钥匙解决方案出售。如果我无法在Archos 7上使用它,我将不得不求助于进口的无品牌中文设备。由于涉及额外费用,我宁愿不这样做。 Archos似乎制作精良,具有良好的电池寿命和适合我需求的触摸屏。