AndroidManifest.xml文件詳解(activity)(五)

android:taskAffinity

這個屬性用於跟Activity有親緣關系的任務。帶有相同親緣關系的Activity,在概念上是屬於相同任務的(從用戶的角度看,它們是屬於同一應用程序的)。任務的親緣關系是通過它的根節點的Activity的親緣關系來判定的。

親緣關系決定瞭兩件事情:1.Activity能否重新設定父任務(看allowTaskReparenting屬性);2.這個任務能夠包含用FLAG_ACTIVITY_NEW_TASK標記啟動的Activity。

默認情況下,在一個應用程序中的所有Activity都有相同的親緣關系。能夠通過設置這個屬性把Activity分到不同的組中。甚至能夠把定義在不同應用程序中的Activity放到同一個任務中。要指定一個跟任何任務沒有親緣關系的Activity,就要把這個屬性設置為空字符串。

如果這個屬性沒有設置,那麼這個Activity會繼承應用程序的親緣關系(看<application>元素的taskAffinity屬性)。應用程序默認的親緣關系名稱是由<manifest>元素的package屬性設定包名。

android:theme

這個屬性用於設定Activity整體主題,它會應用一個樣式資源。系統會使用這個主題來自動的設置Activity的內容。

如果這個屬性沒有設置,Activity會繼承應用程序的主題(<application>元素的theme屬性)做它的整體樣式。如果這個屬性也沒有設置,那麼默認使用系統的主題。

android:uiOptions

這個屬性用於設置Activity的UI的額外選項,它必須是下表中的一個值。

 

說明
none 默認設置,沒有額外的UI選項。
splitActionBarWhenNarrow 在水平空間受到限制的時候,會在屏幕的底部添加一個用於顯示ActionBar中操作項的欄,例如:在縱向的手持設備上。而不是在屏幕頂部的操作欄中顯示少量的操作項。它會把操作欄分成上下兩部分,頂部用於導航選擇,底部用於操作項目。這樣就會確保可用的合理空間不僅隻是針對操作項目,而且還會在頂部給導航和標題留有空間。菜單項目不能被分開到兩個欄中,它們要顯示在一起。

 
 

 

 

這個屬性在API Level 14中被引入。

android:windowSoftInputMode

這個屬性用於設定Activity的主窗口與軟件鍵盤的窗口如何交互。設置這個屬性會影響以下兩件事情:

1. 軟鍵盤的狀態—在Activity獲取輸入焦點時,軟鍵盤是隱藏還是顯示。

2. 調整Activity的主窗口—是調整Activity主窗口的大小,以便給軟鍵盤騰出顯示空間;還是在Activity窗口中的輸入焦點被軟鍵盤覆蓋時,讓Activity窗口中的內容平移,以便輸入焦點能夠顯示給用戶。

這個屬性必須用下表中的一個值來設定,或者是一個state…的值和一個adjust…的值的組合。如:

<activityandroid:windowSoftInputMode="stateVisible|adjustResize" . . . >

這個屬性設置的值會覆蓋主題中設置的值。

 
 

說明
stateUnspecified 它不指定軟鍵盤的狀態(顯示或隱藏)。系統會選擇合適的狀態,或者依賴主題中的設置。
它是軟鍵盤行為的默認設置。
stateUnchanged 當Activity顯示在前臺時,軟鍵盤會保持它最後的狀態(顯示或隱藏)
stateHidden 當用戶選擇這個Activity時,軟鍵盤會隱藏。也就是說,當用戶確認向前瀏覽到這個Activity的時候,而不是因為離開另一個Activity而返回這個Activity的時候。
stateAlwaysHidden 當Activity的主窗口有輸入焦點時,軟鍵盤會始終隱藏
stateVisible 在適當的時候(通常是用戶瀏覽到這個Activity的主窗口),軟鍵盤是可見的。
stateAlwaysVisible 當用戶選擇瞭這個Activity時,軟鍵盤變的可見,也就是說,當用戶確認向前瀏覽到這個Activity的時候,而不是因為離開另一個Activity而返回這個Activity的時候。
adjustUnspecified 這個值並不指定Activity的主窗口會軟鍵盤的顯示而進行大小的調整,也不會指定Activity的主窗口是否會平移,以便把因軟鍵盤所遮擋的輸入焦點顯示給用戶。系統會依賴內容窗口中的內容是否能夠滾動,來自動的選擇這兩種模式。如果Activity窗口中有一個能夠滾動的佈局,那麼這個窗口就會被調整大小,並假設通過滾動能夠在一個較小的區域內來瀏覽窗口中所有的內容。
adjustResize 為適應軟鍵盤的顯示,Activity的主窗口始終要調整大小。
adjustPan Activity的主窗口不會因軟鍵盤的顯示而調整大小,相反,窗口中的內容會被自動的平移,以便輸入焦點不會被軟鍵盤所遮擋,並且用戶能夠看到他們所輸入的內容。通常很少使用這種模式,因為用戶可能需要關閉軟鍵盤,以便能夠跟軟鍵盤所遮擋進行交互。

 

這個屬性在API Level 3中被引入。

元素引入(INTRODUCED IN)

處理noHistory和windowSoftInputMode屬性以外(這兩個屬性在API Level 3中被引入),其他所有的屬性都在API Level 1中被引入。

 

摘自 FireOfStar的專欄

發佈留言