【Android】动态去除系统自带标题栏、状态栏及竖屏、横屏的全屏显示

一、如何去除系统自带标题栏?

(1)直接修改value目录下的styles.xml文件默认的样式

在这里插入图片描述

(2)在value目录下的styles.xml文件新建一个style
    <style name="NoTitle_one" parent="Theme.AppCompat.Light.NoActionBar" />

            <!---->

    <style name="NoTitle_two">
        <item name="android:windowNoTitle">true</item>
    </style>

            <!---->

    <style name="NoTitle_three">
        <item name="windowNoTitle">true</item>
    </style>

注意:在styles文件声明后都要去AndroidManifest.xml文件添加引用

        <activity
            android:name="com.xxx.xxx.xxx"
            android:theme="@style/NoTitle" />
(3)在代码onCreate方法里实现,该方法需要在setContentView前使用
requestWindowFeature(Window.FEATURE_NO_TITLE);
(4)如果你的类继承自AppCompatActivity类,不妨试试最简单的办法
getSupportActionBar().hide();
(5)如果继承的是Activity,还可以这样玩喔
        ActionBar actionBar = getActionBar();
        if (actionBar != null) {
            actionBar.hide();
        }

还有一种好像是在xml那边设置的,忘记了,想起来再补上

如果以上方法都没用的话,那么就有可能你的标题栏不是系统自带滴,而是自己敲代码实现滴

二、如何去除系统状态栏?

(1)当返回了设置该属性的activity,状态栏什么的都会统统的恢复原来的样子喔

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);

(2)推荐使用该方法

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

有不懂的可以戳这里看看

三、如何全屏显示?

思路:全屏,可以把他想象成去掉状态栏和系统自带标题栏。

(1)竖屏全屏显示

参照上面的内容去掉标题栏和状态栏即可(看需求)。

(2)横屏全屏显示

设置横屏全屏显示前,我们需要先将屏幕横过来

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置横屏

会横屏就要会返回竖屏

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//设置竖屏

在ActivityManifest.xml需要全屏显示的activity加上

android:configChanges="keyboardHidden|orientation|screenSize"

进行横屏操作的时候,差不多相当于重载了该界面,需要对横屏前的数据进行保存
如果要保存控件的数据,给控件起一个id即可
如果要保存屏幕相关数据,就要在onConfigurationChanged方法里写相应的配置

(3)全屏显示还可以这样喔~
      //全屏显示
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
          if (Build.VERSION.SDK_INT >= 21) {
              // 全屏显示,隐藏状态栏和导航栏,拉出状态栏和导航栏显示一会儿后消失(SDK版本要大于或等于21才有该功能)
              getWindow().getDecorView().setSystemUiVisibility(
                      View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                              | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                              | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                              | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                              | View.SYSTEM_UI_FLAG_FULLSCREEN
                              | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
          } else {
              // 全屏显示,隐藏状态栏
              getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
          }
      }

参考:
Android开发——去掉系统自带标题栏的几种方式

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宾有为

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值