SiteMap

2014年3月1日土曜日

Android - Remove Title Bar & Notification Bar (Full Screen)

Remove Title Bar & Notification Bar (Full Screen)
(Hide Title Bar & ...)

我知道的方法大致上分為兩種,
01.寫在 java 程式碼裡頭
02.修改 Manifest 或者 xml



方法01.

在該Activity裡頭要覆寫的 onCreate 方法裡面加入下面兩行程式碼
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//Remove Title Bar (電池, 3G, Wifi 通知)
   requestWindowFeature(Window.FEATURE_NO_TITLE);  

   //Remove Notification Bar (程式名稱)
   getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
   WindowManager.LayoutParams.FLAG_FULLSCREEN);

   setContentView(R.layout.activity_main);
    // 請注意, 如果上面那兩段 Remove Code 擺到 setContentView 下面的話會程式閃退
}

 使用者會看到 title bar & notification bar 先出現後再消失的過程


方法02.

直接在Manifest設定:全螢幕

在 AndroidManifest.xml 下的 application 或者 activity 內寫入下行實現全螢幕。
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"


直接在Manifest設定:只去除 標題列 (Remove Title & Notification Bar)

上面的程式碼去除最後的 Fullscreen
android:theme="@android:style/Theme.NoTitleBar"

Notic:
直接在
 <application
   程式碼加在這裡的話整個程式都會生效
  >
  <activity
     加在這裡只會在該 activity 生效(該頁面)
    >
  </activity>
 </application>

編寫風格xml(style.xml), 讓 activity 或者 application 呼叫

過程:
自己定義一個沒有 title bar 的資源 style
在 res/value 下面 新建1個 xml 檔案, 主檔名隨便 (myStyle.xml 什麼的)
內容為

<?xml version="1.0" encoding="utf-8"?>
  <resources>
    <style name="NoTitle" parent="android:Theme">
      <item name="android:windowNoTitle">true</item>
    </style>
  </resources>


然後在 AndroidManifest.xml 裡面 在想要取消 title bar 的 activity 節點裡面加上


<activity
  ...
  android:theme="@style/NoTitle"
  .... >
</activity>


同樣, 加在 application 裡面整個程式生效, activity 則是該頁面

想要達成 去除 標題列 通知列 (也就是全螢幕) 的效果
則在<item name="android:windowNoTitle">true</item> 下面多加一行
      <item name="android:windowFullscreen">true</item> 

0 件のコメント: