Android设置不显示标题栏和状态栏

项目场景:

Android开发中,不显示标题栏和状态栏通常用于全屏应用或者需要沉浸式用户体验的场景。以下是一些可能需要这种设置的项目场景:

视频播放应用:在观看视频时,用户可能希望获得无干扰的观看体验,因此隐藏标题栏和状态栏可以提供更宽广的视野。

游戏应用:许多游戏需要全屏显示以提供沉浸式体验,隐藏这些栏可以避免界面元素干扰玩家的视线。


问题描述

提示:这里描述项目中遇到的问题:

去掉标题栏:(分两种情况,一是继承AppCompatActivity,二是继承Activity

在这里插入图片描述

解决方式一:代码中实现

继承Activity的情况如果Activity继承Activity,则在onCreate()之后,setContentView()之前添加

requestWindowFeature(Window.FEATURE_NO_TITLE); //不显示标题栏

在这里插入图片描述
继承AppCompatActivity的情况如果Activity继承AppCompatActivity,则在onCreate()中添加

//方式一:这句代码必须写在setContentView()方法的后面
getSupportActionBar().hide();

//方式二:这句代码必须写在setContentView()方法的前面
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);

在这里插入图片描述

解决方式二:在清单文件(AndroidManifest.xml)里面实现

继承Activity的情况

<application android:icon="@drawable/icon"   
        android:label="@string/app_name"   
        android:theme="@android:style/Theme.NoTitleBar"> 

<!--或者只对某个activity设置-->
<activity android:name="xxxx.xxxxx.xxxx.activity"
            android:theme="@android:style/Theme.NoTitleBar"/>

继承AppCompatActivity的情况

<application
   android:theme="@style/Theme.AppCompat.NoActionBar">

<!--或者只对某个activity设置-->
<activity android:name="xxxx.xxxxx.xxxx.activity"
            android:theme="@style/Theme.AppCompat.NoActionBar"/>

解决方式三:在style.xml文件里定义

继承Activity的情况
res/values目录下面新建一个style.xmltheme.xml都可以)的文件

<?xml version="1.0" encoding="UTF-8" ?>  
<resources>  
    <style name="notitle">  
        <item name="android:windowNoTitle">true</item>  
    </style>   
</resources>

然后在manifest.xml中引用就可以了

<application android:icon="@drawable/icon"   
        android:label="@string/app_name"   
        android:theme="@style/notitle"> 

<!--或者只对某个activity设置-->
<activity android:name="xxxx.xxxxx.xxxx.activity"
            android:theme="@style/notitle"/>

继承AppCompatActivity的情况
res/values目录下面新建一个style.xmltheme.xml都可以)的文件,它把功能分开的;对于后期的维护非常方便

<style name="Theme.myTheme" parent="Theme.AppCompat.Light.NoActionBar"/>

AndroidManifest.xml中使用

android:theme="@style/Theme.myTheme"

在这里插入图片描述

去掉状态栏:

Activity的onCreate()中添加

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);//隐藏状态栏

但是上面的方式,有点bug,如果你自己下拉,显示了状态栏,它就一直显示了,改用下面的方式,下拉显示状态栏之后,过一会儿会自动隐藏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值