在平时的Android开发中,通常新建项目后系统会默认带了一个标题栏,而在项目中我们通常也是不需要这个标题栏的(大多都是自定义),所以基本上都会去除系统的标题栏,这篇博文就是介绍三种去除标题栏的方法,并在最后罗列一下三种模式的优缺点.如果不想看啰嗦,直接拉到最底下看结论也行.
首先看一下默认显示效果,顶部可以看到硕大的标题栏:
1 三种方式介绍
1. 修改AndroidManifest.xml文件中的系统主题
当我们新创建一个Android项目的时候(我这里使用Android Studio 3.2.1),通常项目结构如下:
我们点击AndroidManifest.xml文件
看到里面的代码如下:
<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自带的不带标题栏的方法即可,代码如下:
<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文件中的主题
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.NoActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
修改父主题,父主题内的代码为:
<style name="Theme.Holo.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
可以看出不显示ActionBar及隐藏标题栏.
3. Activity中修改
对每个activity中设置不显示标题栏,代码如下:
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 如何选择:
建议选用第二种方式.