我需要将我的一项名为MyNoStatusBarActivity.java
的活动作为全屏活动。
我在Manifest中添加了:
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:name=".MyNoStatusBarActivity"
android:noHistory="true"
android:label="@string/app_name"
android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation">
...
</activity>
在我活动的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!
P.S:我很好,这种行为在Honeycomb / ICS中不再可用。我只需要2.2和2.3
修改
尝试了SO中其他解决方案中提到的所有建议但尚未成功。主题应用于应用程序级别但不适用于活动级别。
我正在使用HTC WildFire-S,android ver 2.3.5
答案 0 :(得分:29)
在你的清单xml中,在应用程序级别放置:
<application
...
android:theme="@android:style/Theme.NoTitleBar" >
</application>
并且在您想要全屏显示的活动中输入:
<activity
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
...
</activity>
删除onCreate中的所有setWindowsFeature或setFlag方法。
答案 1 :(得分:6)
我认为你只需要将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);
声明的所有代码,即清单和单个布局xml文件。因为它听起来像在应用程序级别声明它正在工作(因为它覆盖任何后续主题声明)但是有一些事情覆盖了您的活动级别请求。
尝试在整个项目中搜索“android:theme”并删除任何你不是100%确定需要的东西,然后按照这种方式进行测试
答案 2 :(得分:3)
我把它放在我的活动中:
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_splash);
在我的清单中,我没有修改,这是我的,没有修改:
android:theme="@style/AppTheme"
在我的activty xml中:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
答案 3 :(得分:1)
这样可以解决问题:
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);
}
答案 4 :(得分:0)
这将解决您的问题
只需更改你的清单@android:style ... for @style /..
<application
...
android:theme="@style/Theme.AppCompat.NoActionBar">
...
</application>