博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软键盘管理
阅读量:6972 次
发布时间:2019-06-27

本文共 3743 字,大约阅读时间需要 12 分钟。

  安卓开发一般都需要进行软键盘管理,常用操作老司机已为你封装完毕,你可以用这份工具进行管理,具体可以查看源码,现在为你开车,Demo。

站点

软键盘管理 →

openKeybord      : 打卡软键盘closeKeybord     : 关闭软键盘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);}/** * 关闭软键盘 * * @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;}/** * 切换软键盘的状态 * 如当前为收起变为弹出,若当前为弹出变为收起 */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);}

}

终点站

  好了,终点站到了,如果对本次旅途满意的话,请给五星好评哦,没关注的小伙伴轻轻点个上方的关注,毕竟老司机牺牲了很多时间才换来这么一份工具类,如果该工具类依赖其他工具类,都可以在我的中找到。

转载地址:http://nyosl.baihongyu.com/

你可能感兴趣的文章
codevs 3115 高精度练习--减法
查看>>
使用 Swoole 来加速你的 Laravel 应用
查看>>
9月15日学习内容整理:类的命名空间和组合
查看>>
SSD详解
查看>>
关系数据模型的数据结构及约束定义
查看>>
BFS(双向) HDOJ 3085 Nightmare Ⅱ
查看>>
二分搜索 2015百度之星初赛1 HDOJ 5248 序列变换
查看>>
RecycleView的简单使用
查看>>
常用内置函数
查看>>
求空间一点到另外一点(如原点)的距离
查看>>
EditText设置文字改变时的监听
查看>>
Oracle学习笔记安装篇之在Redhat Enterprise Linux 7.0 x86_64下安装Oracle11g R2
查看>>
C++重载赋值运算符
查看>>
NO.7:别让异常逃离析构函数
查看>>
在textarea中鼠标指定的位置插入字符或表情
查看>>
c fopen文件读写
查看>>
(转)UIColor,CGColor,CIColor三者的区别和联系
查看>>
linux基础(5)-用户及权限
查看>>
自己动手写GC
查看>>
hybris 提高订单生成效率
查看>>