由于在5.0以下Notification只能在状态栏显示,因此需要将Activity从全屏style,转为仅显示状态栏style,即隐藏标题栏。
先看一下标题栏,状态栏,导航栏的位置。
通常有四种方法隐藏标题栏。
(1)在Manifest对应的Activity设置NoTitleBar风格
android:theme="@android:style/Theme.NoTitleBar"
(2)自定义style
首先在style.xml文件里定义自己的Style
<?xml version="1.0" encoding="UTF-8" ?>
<resources>
<style name="titleisnull">
<item name="android:windowNoTitle">true</item>
</style>
</resources>
在Manifest中的指定Activity调用自定义Style
<application android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/titleisnull">
(3)在代码中隐藏标题栏
if (getSupportActionBar() != null){
getSupportActionBar().hide();
}
(4)去掉标题栏
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
需要注意的是,requestWindowFeature()方法必须在setContentView()调用前使用。
但该方法也有失效的时候,原因在于对应Activity的继承。
相关的解决方案,此处不做描述,但可参照以下博文
http://blog.csdn.net/bingjianIT/article/details/51706518
顺便记录一下,Activity全屏的设置。
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
需要指出的是,标题栏(Action Bar)是Activity的一部分,全屏只是会隐藏状态栏,对标题栏无影响。