Android 輸入法在頁面中顯示方式位置變化

2021-07-22 13:23:06 字數 1311 閱讀 6355

近期做專案的時候,使用tabhostfragment類以便做導航頁籤,但在子fragment裡需要輸入文字,這就導致在顯示輸入法時候,tab頁籤會上移,而需求卻是隱藏掉頁籤。

系統提供了在清單檔案裡通過設定當前activity的乙個屬性android:windowsoftinputmode來控制輸入法的顯示方式。

在一般情況下,使用adjustresize屬性,這種情況,頁籤會上移,底部view會被隱藏,以便給需要輸入文字的view挪空間

使用adjustpan屬性,這種情況,頁籤會上移,中間view會被隱藏,以便給需要輸入文字的view挪空間

而專案中的需求,恰是不對view做任何改變,便可以將頁籤被輸入框隱藏掉,便可以使用adjustnothing屬性。

下面是對android:windowsoftinputmode部分屬性的值的描述值描述

」stateunspecified「

不指定軟體的狀態(顯示或隱藏)。系統會根據主題中的設定來選擇相應的狀態。 該屬性軟鍵盤的預設設定。

」stateunchnaged「

總是保持上次軟鍵盤的狀態。當activity進入到最前端時,不論是它上次它是顯示或隱藏,保持不變。

」statehidden「

當使用者進入目標activity時,軟鍵盤保持隱藏狀態。這裡的activity是使用者是向前進入activity,而不是由於退出其它activity退回到目標activity。

」statevisible「

只有條件合適(當使用者前進進入到activity的主window),就會顯示鍵盤

」statealawaysvisible「

當使用者選擇進入目標activity時,軟鍵盤被設定為可見的。這裡的activity是使用者向前進入的activity,而不是由於退出其它activity而回到目標activity

"adjustunspecified"

不指定是否去調整activity的介面。或者調整activity視窗的大小以便為軟鍵盤騰出空間或者移動視窗的內容來螢幕上當前的焦點可見。系統會自動選擇其中一種模式,這依賴於視窗是包含可以滑動其內容的view.如有這樣的檢視,視窗的大小就會被調整。在這樣的假定的情況下,很小的滑動就可以使用視窗的內容可見。 該屬性是主windowr預設設定。

」adjustresize「

activity的視窗總是被調整其大小以便為軟鍵盤騰出空間。

」adjustpan「

activity的主視窗不會被調整其大小以便為軟鍵盤騰出空間。相反,視窗的內容會被自動移動以便當前的焦點不會被軟鍵盤遮住,使用者可以總是看到他輸入的內容。這個值一般用於使用者很少想調整視窗的大小的情況下,因為使用者可能需要關閉軟鍵盤來與視窗的其它部分進行互動。

Android輸入法開發

android 1.5 新特色之一就是輸入法框架 input method framework,imf 正是它的出現,才為誕生不帶實體鍵盤的裝置提供了可能。imf設計用來支援不同的ime,包括了soft keyboard,hand writing recognizes和hard keyboard t...

Android輸入法教程

本帖最後由 yanghe123 於 2012 4 28 15 51 編輯 android輸入法教程 輸入法框架 android輸入法框梳理 在android中建立一種新的輸入法 android 呼叫輸入法 android輸入法手勢程式原始碼 android輸入法開發例項 android 輸入法的問題...

Android 隱藏輸入法

對於edittext 可以設定setinputtype inputtype.type null 輸入法就不會彈出。需要的時候在動態設定inputtyep.如果一載入activity 可以用getwindow setsoftinputmode windowmanager.layoutparams.so...