一、简介
Android 开发中,Activity 屏幕中存在状态栏、标题栏和导航栏,如下所示:
二、隐藏标题栏
1、通过代码隐藏
- 对于继承自 AppCompatActivity 的 Activty,可在 onCreate() 方法中调用supportRequestWindowFeature 或 getSupportActionBar 方法来隐藏标题栏。
- 采用 supportRequestWindowFeature 方法时,必须在调用 setContentView 方法之前调用。
- 采用 getSupportActionBar 方法时,没有位置限制。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 隐藏标题栏方法1,必须在 setContentView 方法之前调用
hideTitleBarBeforeSetContentView(this)
setContentView(R.layout.activity_second)
// 隐藏标题栏方法2, 调用位置没有限制
hideTitleBar(this)
}
/**
* 隐藏标题栏,必须在 setContentView 方法之前调用
*/
private fun hideTitleBarBeforeSetContentView(activity: AppCompatActivity) {
// 继承自 AppCompatActivity 的 activity
activity.supportRequestWindowFeature(Window.FEATURE_NO_TITLE)
// 普通 activity
// activity.requestWindowFeature(Window.FEATURE_NO_TITLE)
}
/**
* 隐藏标题栏,调用位置没有限制
*/
private fun hideTitleBar(activity: AppCompatActivity) {
// 使用兼容库场景,在 API 7 及以上版本使用
activity.supportActionBar?.hide()
// API 11 及以上使用,并且没有使用兼容库
activity.actionBar?.hide()
}
2、通过主题隐藏
- 在 /res/values/themes.xml 中可自定义主题,并设置 windowFullscreen 字段为 true。
<style name="MyNoActionTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowFullscreen">true</item>
</style>
- 在 AndroidManifest.xml 文件中,为 <application> 标签或特定 <activity> 标签设置主题。
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/MyNoActionTheme"
tools:targetApi="31">
......
<activity android:name=".SecondActivity"
android:theme="@style/MyNoActionTheme"/>