糊里糊涂学Android(2)——Activity隐藏标题及全屏

。_饼干妹妹 提交于 2019-12-01 00:05:55

        在大部分情况下,我们开发或使用的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就是对应的主题

总结

       通过这三种方式都可以实现标题栏隐藏或者全屏,第一种比较简单,也是比较好的实现方法;第二种方法相对来说不是很好的实现方式;自我感觉第三种方式更好一些,虽然更麻烦一点,但更有利于代码的维护和扩展。一般情况下,推荐使用第一种方式。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!