AndroidManifest.xml

這裡有很多Android App整體相關的設定

父元素:

  • application

子元系:

  • intent-filter
  • meta-data

官方說明

在 configuration 的某些屬性發生變化的時候,Activity 會關閉並重新啟動。但如果當這裡有設定某些 configuration 相關的屬性值,則當該屬性值發生變化的時候,Activity 就不會重啟,而會換成呼叫onConfigurationChanged()

ValueDescription
mcc移動國家代碼, 由三位數字組成。每個國家都有自己獨立的 MCC,可以用來識別手機用戶所屬的國家
mnc移動網路訊號,用來區分手機用戶所使用的電信業者
locale語系改變
touchscreen
keyboard鍵盤模式發生變化,如接入外部鍵盤
keyboardHidden打開手機內建鍵盤
navigation
screenLayout螢幕佈局改變
fontScale字型大小改變
uiModeUI模式改變,API level 8 新增
orientation方向改變。如果使用 API level 13 以上時,那還需要另外加 screenSize,因為螢幕大小的確也發生變化
screenSize螢幕大小改變,API level 13 新增
smallestScreenSizeAPI level 13 新增
layoutDirectionLayout 方向改變,API level 17 新增

可以用在不想重新啟動 Activity 的情況下,如:

螢幕方向改變

android:configChanges="orientation|keyboardHidden"
// API level 13 or high
android:configChanges="orientation|keyboardHidden|screenSize"

官方說明

此設定會決定螢幕的方向為何,此設定要使用的常數值如下:

ValueDescriptionAPI Level
unspecified預設值,由系統自己選方向,不同的設備會有不同的結果1
behindAcitivty 前一個 Activity 相同的方向1
landscapeLandscape 方向,寬度比高度大1
portraitPortrait 方向,高度比寬度大1
reverseLandscapeLandscape 的反方向9
reversePortraitPortrait的 反方向9
sensorLandscape可以是 Landscape 或 reverseLandscape,依感應器的方向決定9
sensorPortrait可以是 Portrait 或 reversePortrait,依感應器的方向決定9
userLandscape18
userPortrait18
sensor依使用者的方向感應器決定螢幕方向,可以使用的方向為系統決定1
fullSensorsensor 有的方向系統是不允許的,使用這個就是四個方向全都可以使用9
nosensorsensor 的功能會被忽視,其他跟 unspecified 一樣1
user使用 user 目前首選的方向1
fullUser18
locked18

官方說明

這個設定決定了 Activity 與 SoftInput 的互動會是如何。

它會影響兩件事

  • SoftInput 的狀態。當 Activity 處於 focus 時,決定它是否顯示。
  • ActivityWindows 的調整。是否要減少 ActivityWindows 大小以便騰出空間放 SoftInput;是否當使用中視窗的部分被 softInput 覆蓋時它的內容的當前焦點是可見的。

它能設的是常數字串,也可以多組組合:

ValueDescription
stateUnspecifiedSoftInput 不指定狀態,系統會自動選擇。這也是預設值
stateUnchanged
stateHidden
stateAlwaysHidden
stateVisible
stateAlwaysVisible
adjustUnspecified不指定視窗調整的方法
adjustResize指定視窗要調整大小
adjustPan指定視窗不調整大小