在大部分情况下,我们开发或使用的App都不需要Activity中原本的标题,都有自己独特或个性的标题栏,甚至有些App是全屏的。下面就来探究一下都有哪几种方法可以实现隐藏标题或全屏。
1.修改Application Manifest.xml
Application Manifest.xml是每一个Android项目必不可少的基础性文件,它可以定义应用程序及其组件和需求的结构和元数据。总之,应用程序的基础性需求及结构是它来定义的。在Android开发API指南中有详细解释,该文件该详细了解一下http://developer.android.com/intl/zh-cn/guide/topics/manifest/manifest-intro.html。
说了Manifest文件的重要性,下面回到正题。在该文件中最重要的一个节点application节点,代表整个应用程序,修改该节点中的Theme属性,就可以实现,代码如下:
android:theme="@android:style/Theme.NoTitleBar//隐藏标题栏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen//隐藏标题栏并全屏
这样修改的话,整个应用程序中每个Activity的标题都没有或者全屏了,但如果仅仅只是想要单个的Activity窗口隐藏标题或全屏,那该怎么实现呢?其实很简单,不修改application中的Theme属性,而是修改对应activity节点中的Theme属性,代码都是一样的,仅仅位置改变而已。
2.在Java类中添加代码
在每个Activity创建的方法中,必须调用setContentView方法来加载layout布局文件,从而显示Activity的界面布局。因此,该方法就是在加载布局文件之前先将标题隐藏或全屏。其中,隐藏标题栏使用的方法是requestWindowFeature,该方法是设置窗体的扩展属性,主要是标题栏属性,可以自定义标题栏,当然也可以隐藏标题栏,隐藏需要这样设置:
requestWindowFeature (Window. FEATURE_NO_TITLE );//隐藏标题栏
另一个设置全屏使用getWindow ().setFlags,来看代码:
getWindow().setFlags (WindowManager. LayoutParams.FLAG_FULLSCREEN ,
WindowManager .LayoutParams. FLAG_FULLSCREEN);
这样就完成了,不过还是提醒下:这两个函数必须在setContentView之前添加,否则布局加载完成之后再添加,程序就会崩溃。
3.添加无标题或者全屏主题
在res/values/styles.xml中添加无标题或者全屏或两种兼有的主题样式,即style节点。如下:
<!-- 无标题样式主题 -->
<style name="notitle">
<item name= "android:windowNoTitle" >true </item>
</style >
<!-- 全屏样式主题 -->
<style name="fullscreen">
<item name= "android:windowFullscreen" >true </item>
</style >
<!-- 无标题且全屏样式主题 -->
<style name="notitle_fullscreen">
<item name= "android:windowNoTitle" >true </item>
<item name= "android:windowFullscreen" >true </item>
</style >
然后在Manifest文件的application节点或者activity节点修改Theme属性,如下
android:theme ="@style/notitle_fullscreen"//修改对应的style name就是对应的主题
总结
通过这三种方式都可以实现标题栏隐藏或者全屏,第一种比较简单,也是比较好的实现方法;第二种方法相对来说不是很好的实现方式;自我感觉第三种方式更好一些,虽然更麻烦一点,但更有利于代码的维护和扩展。一般情况下,推荐使用第一种方式。
来源:oschina
链接:https://my.oschina.net/u/555982/blog/209071