android如何隐藏状态栏而不隐藏标题栏

时间:2011-08-07 05:15:06

标签: android statusbar

在我的应用程序中,我正在使用canvas。我在画布上画画。我把帆布颜色变成了白色。当我的应用程序打开时,画布与上面的状态栏一起可见。 但我希望我的画布应该采取全屏幕。意味着当我运行该应用程序而不是标题栏时,通知状态栏应该消失(bcz我正在使用一些自定义标题栏) 我怎么能这样做?

通过使用下面的代码,我给了自定义标题,

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);

现在我正在尝试使用活动中的以下代码隐藏状态栏 -

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

和AndroidManifest.xml

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

但它表明力量接近。 给我一个怎么做的方法?

3 个答案:

答案 0 :(得分:3)

删除行

就足够了
 requestWindowFeature(Window.FEATURE_NO_TITLE);

但是如果你想要全屏显示(没有动作栏)也要写

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


  setContentView(R.layout.activity_location_eb);

答案 1 :(得分:1)

设置Window.FEATURE_CUSTOM_TITLE后,您无法使用Theme.NoTitleBar。只使用这个主题就足够了。不要在代码中设置所有这些标志。

编辑:似乎我误解了你的问题。我仔细阅读了它,现在我看到你在询问Android 2.x及其通知栏。您的onCreate()方法应如下所示:

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

    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

    setContentView(R.layout.name);

    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

您不得为此活动设置Theme.NoTitleBarTheme.NoTitleBar.Fullscreen。只需使用默认的Theme或根本不指定任何主题。

答案 2 :(得分:0)

我将告诉您如何单独和完美地处理标题栏和系统通知面板。 根据您的需要使用其中一个或两个。

1. 不要通过XML将任何主题应用于活动。

2.现在,去吧。 Java文件并添加这些行 在onCreate()里面..  之后 super.onCreate()..

Part.a。删除标题栏

this.requestWindowFeature(Window.FEATURE_NO_TITLE);

Part.b。删除系统通知面板

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

不要忘记按照惯例跟随他们

setContentView(R.layout.activity_layout_name);