Android 输入完成后点击其他地方使EditText隐藏光标和隐藏软键盘的实现
发布日期:2021-07-01 00:00:05 浏览次数:2 分类:技术文章

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

前言

在项目中经常使用EditText 非常方便 但是EditText 的光标总是闪烁

对于用户来说体验感不佳 也可以说是不完美的一个功能
如何优化用户体验是我们对产品的态度

隐藏光标和软键盘效果图

1

如何隐藏EditText光标

一开始想到的就是让父布局去争夺子控件的焦点 这样来实现

就是在点击父窗体的时候 这时候强行用代码 来把焦点获取到 取消Edittext的焦点
这样实现是可以实现 但是不完美 每次点击父窗体 整个View都闪烁一下 难看极了

另外一种解决方法 看下面

↓↓

封装工具HideInput

/**     * 获取点击事件     */    @Override    public boolean dispatchTouchEvent(MotionEvent ev) {        if (ev.getAction() == MotionEvent.ACTION_DOWN) {            View view = getCurrentFocus();            if (isHideInput(view, ev)) {                HideSoftInput(view.getWindowToken());                view.clearFocus();            }        }        return super.dispatchTouchEvent(ev);    }    /**     * 判定是否需要隐藏     */    private boolean isHideInput(View v, MotionEvent ev) {        if (v != null && (v instanceof EditText)) {            int[] l = {0, 0};            v.getLocationInWindow(l);            int left = l[0], top = l[1], bottom = top + v.getHeight(), right = left + v.getWidth();            if (ev.getX() > left && ev.getX() < right && ev.getY() > top && ev.getY() < bottom) {                return false;            } else {                return true;            }        }        return false;    }    /**     * 隐藏软键盘     */    private void HideSoftInput(IBinder token) {        if (token != null) {            InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);            manager.hideSoftInputFromWindow(token, InputMethodManager.HIDE_NOT_ALWAYS);        }    }

使用方法

集成封装好的工具类 自动实现光标的隐藏和软键盘

//集成封装好的工具类 自动实现光标的隐藏和软键盘public class WithdrawActivity extends HideInputActivity {		//doing something}

共勉

我要一步一步往上爬

在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天
在这里插入图片描述

转载地址:https://lvshichunqiu.blog.csdn.net/article/details/107794224 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Android 底部弹出自定义Dialog(支付宝微信选择)
下一篇:Android自定义ImageView实现圆角图片

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年05月05日 10时34分37秒