Android去除标题栏的三种方式及优缺点

在平时的Android开发中,通常新建项目后系统会默认带了一个标题栏,而在项目中我们通常也是不需要这个标题栏的(大多都是自定义),所以基本上都会去除系统的标题栏,这篇博文就是介绍三种去除标题栏的方法,并在最后罗列一下三种模式的优缺点.如果不想看啰嗦,直接拉到最底看结论也行.

首先看一下默认显示效果,顶部可以看到硕大的标题栏:

1 三种方式介绍

1. 修改AndroidManifest.xml文件中的系统主题

当我们新创建一个Android项目的时候(我这里使用Android Studio 3.2.1),通常项目结构如下:

我们点击AndroidManifest.xml文件

看到里面的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

android:theme=”@style/AppTheme”

这一行代码的意思就是项目使用的主题为项目目录 res->values下的styles.xml文件中的AppTheme主题,如图:

那么我们直接修改这里,把主题修改为Android自带的不带标题栏的方法即可,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@android:style/Theme.Black.NoTitleBar"> <!--修改这行代码即可-->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

修改后看下效果:

可以看出已经消除了.

2. 修改styles.xml文件中的主题

1
2
3
4
5
6
7
8
<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.NoActionBar">
<!-- Customize your theme here. -->
</style>

</resources>

修改父主题,父主题内的代码为:

1
2
3
4
<style name="Theme.Holo.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

可以看出不显示ActionBar及隐藏标题栏.

3. Activity中修改

对每个activity中设置不显示标题栏,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // 代码必须填写在setContentView()方法之前,否则闪退
setContentView(R.layout.activity_main);
}
}

2 优缺点总结:

方式 Manifest.xml styles.xml Activity
优点 修改后全局可用 修改后全局可用并且定制化程度高 作用域独立
缺点 无法自定义标题栏 每个activity都需要设置
注意点 代码书写顺序有要求

3 如何选择:

建议选用第二种方式.

-------------本文结束 感谢您的阅读-------------

本文标题:Android去除标题栏的三种方式及优缺点

文章作者:西湖长剑

发布时间:2018年12月27日 - 12:12

最后更新:2018年12月27日 - 14:12

原始链接:http://www.xlgz520.com/2018/12/27/Android去除标题栏的三种方式及优缺点/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%