Android開發——去掉系統自帶標題欄的幾種方式
今天在練習自定義標題欄(Android初級開發(四)——補充3)的過程中遇到了隱藏系統自帶標題欄的問題,現將幾種去掉系統自帶標題欄的方式做一總結。大體上可以分為兩種方式,一種是修改xml檔案(這種方式產生的效果作用於所有Activity),一種是編碼實現(這種方式產生的效果只作用於當前Activity):
方法1-1:
1、檢視清單檔案AndroidManifest.xml中的theme
android:theme="@style/AppTheme"(系統預設的) 保持不變
2、在style.xml檔案中修改AppTheme
方法1-2
在清單檔案AndroidManifest.xml中修改theme,使用系統自帶的無標題樣式
實現無標題欄(但有系統自帶的工作列)
android:theme = "@android:style/Theme.NoTitleBar
實現全屏效果:
android:theme = "@android:style/Theme.NoTitleBar.Fullscreen"
!!!這時,可能會有朋友發現自己執行後出現錯誤,提示You need to use a Theme.AppCompat theme (or descendant) with this activity.這是因為Activity繼承自了android.support.v7.app.AppCompatActivity,而不是android.app.Activity。具體的解決方法有兩種:
1)如果不是強烈要求我們的Activity必須繼承自AppCompatActivity,就直接讓它繼承Activity.如圖
2)如果還是想繼承自AppCompatActivity,那麼根據提示來使用AppCompat的theme,即將AndroidManifest.xml檔案中關於Activity的theme配置改為:
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
好了,執行程式,你會發現問題已經解決啦~!!
方式1-3
在清單檔案AndroidManifest.xml中修改theme,使用自定義的無標題樣式
android:theme = "@style/NoTitle"
在res/values/styles.xml檔案中,加入如下程式碼
<style name="NoTitle"> <item name="android:windowNoTitle">true</item> </style>
方法2
在程式中編寫程式碼進行設定,只需在onCreate()方法中加入如下程式碼:
實現無標題欄(但有系統自帶的工作列)
requestWindowFeature(Window.FEATURE_NO_TITLE);
實現全屏效果
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
我在參考其他小夥伴的隱藏標題欄相關資料時,發現很多人都喜歡在文章最後附上這個Android系統自帶樣式羅列表,本來我是不打算仿照他們的這個做法的,但是想著還是自己敲一遍加深印象,抱著這個目的,下面請見Android系統自帶樣式:)
附:Android系統自帶樣式
android:theme = "@android:style/Theme.Dialog" 將一個Activity顯示為對話方塊模式
android:theme = "@android:style/Theme.NoTitleBar" 不顯示應用程式標題欄
android:theme = "@android:style/Theme.NoTitleBar.Fullscreen" 不顯示應用程式標題欄,並全屏
android:theme = "Theme.Light" 背景為白色
andorid:theme = "Theme.Light.NoTitleBar" 白色背景並無標題欄
android:theme = "Theme.Black" 背景為黑色
android:theme = "Theme.Black.NoTitleBar" 黑色背景並無標題欄
android:theme = "Theme.Black.NoTitleBar.Fullscreen" 黑色背景,無標題欄,全屏
android:theme = "Theme.Wallpaper" 用系統桌面為應用程式背景
android:theme = "Theme.Wallpaper.NoTitleBar" 用系統桌面為應用程式背景,且無標題欄
android:theme = "Theme.Wallpaper.NoTitleBar.Fullscreen" 用系統桌面為應用程式背景,無標題欄,全屏
android:theme = "Translucent" 透明背景
android:theme = "Theme.Translucent.NoTitleBar" 透明背景並無標題
android:theme = "Theme.Translucent.NoTitleBar.Fullscreen" 透明背景並無標題,全屏
android:theme = "Theme.Panel" 面板風格顯示
android:theme = "Theme.Light.Panel" 平板風格顯示
業精於勤荒於嬉,行成於思毀於隨