欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android简单粗暴地去掉标题栏以及全屏

程序员文章站 2022-07-14 08:10:02
...

总结的几种去掉标题的方式:

1. 在代码中实现

在此方法setContentView(R.layout.activity_main)之前加入:

 requestWindowFeature(Window.FEATURE_NO_TITLE);

如果用了这个方法失效的话,那是因为你的activity继承AppCompatActivity。。。。
就用我提供的下面这种方法

2. 重点:解决activity继承AppCompatActivity去掉标题栏

使用As开发工具的大佬们都知道,更新之后,所有的activity都是继承于AppCompatActivity

之前本人做项目的时候,用了一个高仿滴滴的城市筛选,但是必须加主题,否则就会报一个奇葩的错误,没办法,就遇到了这个纠结的问题

  this.requestWindowFeature(Window.FEATURE_NO_TITLE);
                    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

用这个有一个bug,那就是状态消失之后,标题栏还在。。。。

于是更改为这个:

方法一:

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

方法二:

手动在oncreate里调用hide()

if (getSupportActionBar() != null){
   getSupportActionBar().hide();
}

总结: 在代码中实现去掉标题的方法失效,主要是AppCompatActivity根本没标题栏。因为它的ActionBar才是标题栏

3. 在Manifest清单文件中

注册Activity时加上下面这句话进行配置
<activity  android:name=".Activity"
android:theme="@android:style/Theme.NoTitleBar">
</activity>

4. 在style中添加属性,并在清单文件中注册

    <!--去掉标题-->
    <style name="AppThemeTitle" parent="Theme.AppCompat.Light.NoActionBar"/>

清单文件在application中写入:

android:theme="@style/AppThemeTitle"

5. 在style中全局去设置去掉标题

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
    </style>

6. 有的需求不一样,想要设置全局、整个应用为全屏或者去掉标题

在你的清单文件中的application中去设置,找到相对应的application节点

  android:theme="@android:style/Theme.NoTitleBar.Fullscreen"  ---- 设置全屏
  android:theme="@android:style/Theme.NoTitleBar"  ---- 去掉标题栏

7. 在代码设置全屏显示

//去掉状态栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

8. 在使用的时候,不要在清单文件中去给相对应的activity去设置如下style

在AndroidManifest.xml清单文件中,找到相应的Activity节点;

 <activity android:name=".MainActivity"
           android:theme="@android:style/Theme.NoTitleBar" />   ---- 去掉标题栏

或者:

 <activity android:name=".RoteMillageActivity"
           android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> ---- 设置全屏

至于为什么,有时候运行你的项目,它会奔溃

解决办法,改为如下:(这个是没有标题栏)

android:theme="@style/Theme.Design.Light.NoActionBar"

最终总结一下:

去掉标题的方法有很多,我只是介绍了几种常用的,后期在给大家更新吧

上一篇: C语言操作符

下一篇: C语言操作符