Android 監聽鍵盤彈出收起

2021-09-11 20:53:48 字數 1987 閱讀 3514

很多專案都有登入介面,而在登入介面往往有個軟鍵盤彈起造成登入介面布局的變型,這是使用者所不能容忍的,我是這樣做的,也成功解決了我的問題! 在manifest檔案中可以設定activity的android:windowsoftinputmode屬性,這個屬性值常見的設定如下:android:windowsoftinputmode="statealwayshidden|adjustpan"

那麼這裡值的含義列表如下:

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

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

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

【e】statevisible:軟鍵盤通常是可見的

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

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

【h】adjustresize:該activity總是調整螢幕的大小以便留出軟鍵盤的空間

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

softkeyboardlistener類

importandroid.graphics.rect;

importandroid.view.view;

importandroid.view.viewtreeobserver;

importandroid.widget.toast;/**

* created by liujinhua on 15/10/25.

*/public class softkeyboardlistener

//根檢視顯示高度沒有變化,可以看作軟鍵盤顯示/隱藏狀態沒有改變

if (rootviewvisibleheight == visibleheight)

//根檢視顯示高度變小超過200,可以看作軟鍵盤顯示了

if (rootviewvisibleheight - visibleheight > 200)

rootviewvisibleheight = visibleheight;

return;

}//根檢視顯示高度變大超過200,可以看作軟鍵盤隱藏了

if (visibleheight - rootviewvisibleheight > 200)

rootviewvisibleheight = visibleheight;

return;}}

});}private void setonsoftkeyboardchangelistener(onsoftkeyboardchangelistener onsoftkeyboardchangelistener)

public inte***ce onsoftkeyboardchangelistener

public static void setlistener(activity activity, onsoftkeyboardchangelistener onsoftkeyboardchangelistener)

}複製**

activity中呼叫:

softkeyboardlistener.setlistener(getactivity(), new softkeyboardlistener.onsoftkeyboardchangelistener

() @override

public void keyboardhide(int height)

});複製**

這樣就可以監聽鍵盤的彈出收起操作了。可以在keyboardshow與keyboardhide函式中寫入對布局的操作。 下面是效果圖:

偉大的哲學家我自己曾經說過,有夢想就要大聲說出來 ,萬丈高樓平地起,能不能行靠自己!

Android 鍵盤彈出監聽

之前一直是使用androidutilcode 的 keyboardutil,直到遇到問題 補充一種監聽 import android.content.context import android.graphics.rect import android.view.view import androi...

iOS 收起彈出的鍵盤

收起鍵盤 在我們用到的介面上,有時需要點選介面收起鍵盤,想必很多人會想到在 view上加乙個uitapgesturerecognizer,然後用 self.view endediting yes 來解決,今天來提供令人眼前一亮的另外三種方法 1.過載viewcontroller的 void touc...

js 移動端之監聽軟鍵盤彈出收起

js 移動端關於頁面布局,如果底部有position fixed的盒子,又有input,當軟鍵盤彈出收起都會影響頁面布局。這時候android可以監聽resize事件,如下,而ios沒有相關事件。解決安卓鍵盤彈出問題 var oheight document height window resize...