摘要:安卓開發(fā)一般都需要進(jìn)行軟鍵盤管理,常用操作老司機(jī)已為你封裝完畢,你可以用這份工具進(jìn)行管理,具體可以查看源碼,現(xiàn)在為你開車,傳送門。
??安卓開發(fā)一般都需要進(jìn)行軟鍵盤管理,常用操作老司機(jī)已為你封裝完畢,你可以用這份工具進(jìn)行管理,具體可以查看源碼,現(xiàn)在為你開車,Demo傳送門。
站點(diǎn) 軟鍵盤管理 → AppKeyBoardMgropenKeybord : 打卡軟鍵盤 closeKeybord : 關(guān)閉軟鍵盤 TimerHideKeyboard: 通過定時(shí)器強(qiáng)制隱藏虛擬鍵盤 isKeybord : 輸入法是否顯示 hideInputMethod : 隱藏輸入法 showInputMethod : 顯示輸入法具體路線
public class AppKeyBoardMgr {
/** * 打開軟鍵盤 * * @param mEditText 輸入框 * @param mContext 上下文 */ public static void openKeybord(EditText mEditText, Context mContext) { InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); } /** * 關(guān)閉軟鍵盤 * * @param mEditText 輸入框 * @param mContext 上下文 */ public static void closeKeybord(EditText mEditText, Context mContext) { InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); } /** * 通過定時(shí)器強(qiáng)制隱藏虛擬鍵盤 */ public static void TimerHideKeyboard(final View v) { Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive()) { imm.hideSoftInputFromWindow(v.getApplicationWindowToken(),0); } } }, 10); } /** * 輸入法是否顯示 */ public static boolean KeyBoard(EditText edittext) { boolean bool = false; InputMethodManager imm = (InputMethodManager) edittext.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive()) { bool = true; } return bool; } /** * 切換軟鍵盤的狀態(tài) * 如當(dāng)前為收起變?yōu)閺棾?若當(dāng)前為彈出變?yōu)槭掌? */ public static void toggleKeybord(EditText edittext) { InputMethodManager inputMethodManager = (InputMethodManager) edittext.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); } /** * 強(qiáng)制隱藏輸入法鍵盤 */ public static void hideKeybord(EditText edittext) { InputMethodManager inputMethodManager = (InputMethodManager) edittext.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (inputMethodManager.isActive()) { inputMethodManager.hideSoftInputFromWindow(edittext.getWindowToken(), 0); } } /** * 強(qiáng)制顯示輸入法鍵盤 */ public static void showKeybord(EditText edittext) { InputMethodManager inputMethodManager = (InputMethodManager) edittext.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.showSoftInput(edittext, InputMethodManager.SHOW_FORCED); } /** * 輸入法是否顯示 */ public static boolean isKeybord(EditText edittext) { boolean bool = false; InputMethodManager inputMethodManager = (InputMethodManager) edittext.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); if (inputMethodManager.isActive()) { bool = true; } return bool; } /** * 隱藏輸入法 * * @param mAct activity */ public static void hideInputMethod(Activity mAct) { try {// hide keybord anyway View v = mAct.getWindow().getCurrentFocus(); if (v != null) { InputMethodManager imm = (InputMethodManager) mAct.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); } } catch (Exception e) { } } /** * 顯示輸入法 * * @param mAct activity */ public static void showInputMethod(final Activity mAct) { View v = mAct.getCurrentFocus(); if (null == v) { return; } ((InputMethodManager) mAct.getSystemService(Activity.INPUT_METHOD_SERVICE)).showSoftInput(v, 0); }
}
終點(diǎn)站??好了,終點(diǎn)站到了,如果對本次旅途滿意的話,請給五星好評哦,沒關(guān)注的小伙伴輕輕點(diǎn)個(gè)上方的關(guān)注,畢竟老司機(jī)犧牲了很多時(shí)間才換來這么一份工具類,如果該工具類依賴其他工具類,都可以在我的史上最全的常用開發(fā)工具類收集(持續(xù)更新中)中找到。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70256.html
摘要:然而,并沒有直接監(jiān)聽軟鍵盤的原生事件,只能通過軟鍵盤彈起或收起,引發(fā)頁面其他方面的表現(xiàn)間接監(jiān)聽,曲線救國。軟鍵盤收起表現(xiàn)觸發(fā)輸入框以外的區(qū)域時(shí),輸入框失去焦點(diǎn),軟鍵盤收起??梢宰屲涙I盤彈起后,讓焦點(diǎn)元素再次滾到可視區(qū),強(qiáng)迫滾到位。 前言 最近一段時(shí)間在做 H5 聊天項(xiàng)目,踩過其中一大坑:輸入框獲取焦點(diǎn),軟鍵盤彈起,要求輸入框吸附(或頂)在輸入法框上。需求很明確,看似很簡單,其實(shí)不然。從...
摘要:文本輸入框容易下沉因?yàn)檐涙I盤彈出時(shí)是一個(gè)動畫方法利用滾動條,彈出軟鍵盤的時(shí)候讓滾動條滾動到最底部。效果點(diǎn)擊按鈕彈出輸入框獲取焦點(diǎn)并彈出軟鍵盤類似微信朋友圈空間。 ## 文本輸入框容易下沉因?yàn)檐涙I盤彈出時(shí)是一個(gè)動畫 ## //方法:利用滾動條,彈出軟鍵盤的時(shí)候讓滾動條滾動到最底部。并設(shè)置一個(gè)定時(shí)器每過0.5秒設(shè)置一次, //這個(gè)是因?yàn)檐涙I盤還沒有完全彈出滾動條已經(jīng)到此時(shí)的底部了,等軟鍵盤...
摘要:文本輸入框容易下沉因?yàn)檐涙I盤彈出時(shí)是一個(gè)動畫方法利用滾動條,彈出軟鍵盤的時(shí)候讓滾動條滾動到最底部。效果點(diǎn)擊按鈕彈出輸入框獲取焦點(diǎn)并彈出軟鍵盤類似微信朋友圈空間。 ## 文本輸入框容易下沉因?yàn)檐涙I盤彈出時(shí)是一個(gè)動畫 ## //方法:利用滾動條,彈出軟鍵盤的時(shí)候讓滾動條滾動到最底部。并設(shè)置一個(gè)定時(shí)器每過0.5秒設(shè)置一次, //這個(gè)是因?yàn)檐涙I盤還沒有完全彈出滾動條已經(jīng)到此時(shí)的底部了,等軟鍵盤...
閱讀 2079·2021-10-12 10:12
閱讀 798·2021-09-24 09:47
閱讀 1198·2021-08-19 11:12
閱讀 3486·2019-08-29 13:06
閱讀 695·2019-08-26 11:43
閱讀 2581·2019-08-23 17:20
閱讀 1159·2019-08-23 16:52
閱讀 2607·2019-08-23 14:27