??安卓開發(fā)一般都需要進行軟鍵盤管理帮哈,常用操作老司機已為你封裝完畢新荤,你可以用這份工具進行管理,具體可以查看源碼,現(xiàn)在為你開車枫浙,Demo傳送門。
站點
軟鍵盤管理 → AppKeyBoardMgr
openKeybord : 打卡軟鍵盤
closeKeybord : 關(guān)閉軟鍵盤
TimerHideKeyboard: 通過定時器強制隱藏虛擬鍵盤
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);
}
/**
* 通過定時器強制隱藏虛擬鍵盤
*/
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)
* 如當前為收起變?yōu)閺棾?若當前為彈出變?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);
}
/**
* 強制隱藏輸入法鍵盤
*/
public static void hideKeybord(EditText edittext) {
InputMethodManager inputMethodManager = (InputMethodManager)
edittext.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager.isActive()) {
inputMethodManager.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
}
}
/**
* 強制顯示輸入法鍵盤
*/
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);
}
}
終點站
??好了惩系,終點站到了舵揭,如果對本次旅途滿意的話,請給五星好評哦校赤,沒關(guān)注的小伙伴輕輕點個上方的關(guān)注吆玖,畢竟老司機犧牲了很多時間才換來這么一份工具類,如果該工具類依賴其他工具類马篮,都可以在我的史上最全的常用開發(fā)工具類收集(持續(xù)更新中)中找到沾乘。