1. 程式人生 > >關於Fragment的底部被軟鍵盤上移動及軟鍵盤的詳解

關於Fragment的底部被軟鍵盤上移動及軟鍵盤的詳解

android:windowSoftInputMode="stateHidden|adjustPan",這樣會保證底部欄保持不變。

這個是我自己的FragmentActivity

<activity

            android:name=".MainIndex"

android:label="@string/app_name"

android:windowSoftInputMode="stateHidden|adjustPan"

android:configChanges="keyboard">

<intent-filter>

<action

android:name="android.intent.action.MAIN"/>

<categoryandroid:name="android.intent.category.LAUNCHER"/>

</intent-filter>

</activity>


android:windowSoftInputMode

activity主視窗與軟鍵盤的互動模式,可以用來避免輸入法面板遮擋問題,Android1.5後的一個新特性。

這個屬效能影響兩件事情:

【一】當有焦點產生時,軟鍵盤是隱藏還是顯示

【二】是否減少活動主視窗大小以便騰出空間放軟鍵盤

它的設定必須是下面列表中的一個值,或一個state…”值加一個adjust…”值的組合。在任一組設定多個值——多個state…”values,例如&mdash有未定義的結果。各個值之間用|分開。例如:<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >

在這設定的值("stateUnspecified""adjustUnspecified"以外)將覆蓋在主題中設定的值


各值的含義:

【A】stateUnspecified:軟鍵盤的狀態並沒有指定,系統將選擇一個合適的狀態或依賴於主題的設定

【B】stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity裡的狀態,無論是隱藏還是顯示

【C】stateHidden:使用者選擇activity時,軟鍵盤總是被隱藏

【D】stateAlwaysHidden:當該Activity主視窗獲取焦點時,軟鍵盤也總是被隱藏的

【E】stateVisible:軟鍵盤通常是可見的

【F】stateAlwaysVisible:使用者選擇activity時,軟鍵盤總是顯示的狀態

【G】adjustUnspecified:預設設定,通常由系統自行決定是隱藏還是顯示

【H】adjustResize:該Activity總是調整螢幕的大小以便留出軟鍵盤的空間

【I】adjustPan:當前視窗的內容將自動移動以便當前焦點從不被鍵盤覆蓋和使用者能總是看到輸入內容的部分