android:theme =“@ android:style / Theme.NoTitleBar.Fullscreen”适用于应用程序级别,但不适用于活动级别。 任何线索?

我需要将我的一项名为MyNoStatusBarActivity.java的活动作为全屏活动。

我在Manifest中添加了:

  ...  

在我的活动的onCreate

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } 

这样做只是隐藏TITLE栏而不是STATUS栏。

此外,如果我在应用程序级别使用清单主题而不是我的活动,它可以工作,但我的应用程序的所有活动,这不是我想要的。 我想只为一个特定的活动禁止状态栏。

帮助将非常感激。 日Thnx!

PS:我很好,这种行为在Honeycomb / ICS中不再可用。 我只需要2.2和2.3就可以了

编辑

尝试了SO中其他解决方案中提到的所有建议但尚未成功。 应用于应用程序级别但不适用于活动级别时,主题可用。

我正在使用HTC WildFire-S,android ver 2.3.5

在您的清单xml中,在应用程序级别放置:

   

在你要全屏显示的活动中:

  ...  

删除onCreate中的所有setWindowsFeature或setFlag方法。

我认为你只需要把android:theme="@android:style/Theme.NoTitleBar.Fullscreen从主要android:theme="@android:style/Theme.NoTitleBar.Fullscreen拿出来,坚持使用代码只调用它,它总是对我android:theme="@android:style/Theme.NoTitleBar.Fullscreen 。你使用哪种测试设备?

还要确保调用setContentView(R.layout.xxx) 之前调用这些调用

  super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.xxx); 

检查所有代码的android:theme声明,即清单和单个布局xml文件。 因为它听起来像在应用程序级别声明它正在工作(因为它覆盖了任何后续主题声明)但是有一些事情覆盖了您的活动级别请求。

尝试在整个项目中搜索“android:theme”并删除任何你不是100%确定需要的东西,以这种方式进行测试

我把它放在我的活动中:

 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_splash); 

在我的清单中我不修改,这是我的,没有修改:

 android:theme="@style/AppTheme" 

在我的activty xml中:

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

这样就可以了:

 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); } 

这将解决您的问题

只需更改你的清单@android:style … for @ style / ..

  ...