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的專欄