Android 点击editview以外位置实现隐藏输入法
发布时间 - 2026-01-11 01:57:40 点击率:次Android 点击editview以外位置实现隐藏输入法

实现代码:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
View v = getActivity().getCurrentFocus();
if (isShouldHideInput(v, ev)) {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
}
}
return getActivity().dispatchTouchEvent(ev);
}
// 必不可少,否则所有的组件都不会有TouchEvent了
if (getActivity().getWindow().superDispatchTouchEvent(ev)) {
return true;
}
return getActivity().onTouchEvent(ev);
}
public boolean isShouldHideInput(View v, MotionEvent event) {
if (v != null && (v instanceof EditText)) {
int[] leftTop = { 0, 0 };
//获取输入框当前的location位置
v.getLocationInWindow(leftTop);
int left = leftTop[0];
int top = leftTop[1];
int bottom = top + v.getHeight();
int right = left + v.getWidth();
if (event.getX() > left && event.getX() < right
&& event.getY() > top && event.getY() < bottom) {
// 点击的是输入框区域,保留点击EditText的事件
return false;
} else {
return true;
}
}
return false;
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 点击editview现隐藏
# editview
# Android基础控件(EditView、SeekBar等)的使用方法
# Android控件之EditView常用属性及应用方法
# 输入框
# 的是
# 会有
# 都不
# 希望能
# 谢谢大家
# 必不可少
# getCurrentFocus
# isShouldHideInput
# InputMethodManager
# ACTION_DOWN
# View
# getActivity
# imm
# Context
# INPUT_METHOD_SERVICE
# null
# getSystemService
# strong
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何自定义错误页面(404, 500)?(代码示例)
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
Laravel如何实现用户密码重置功能?(完整流程代码)
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
如何在企业微信快速生成手机电脑官网?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
用yum安装MySQLdb模块的步骤方法
如何快速搭建高效WAP手机网站?
Swift开发中switch语句值绑定模式
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
个人网站制作流程图片大全,个人网站如何注销?
如何在阿里云ECS服务器部署织梦CMS网站?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Java遍历集合的三种方式
Laravel PHP版本要求一览_Laravel各版本环境要求对照
免费视频制作网站,更新又快又好的免费电影网站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Laravel如何使用Sanctum进行API认证?(SPA实战)
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
Python函数文档自动校验_规范解析【教程】
青岛网站建设如何选择本地服务器?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
如何用已有域名快速搭建网站?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
如何用PHP快速搭建CMS系统?
Laravel如何为API编写文档_Laravel API文档生成与维护方法
Linux系统运维自动化项目教程_Ansible批量管理实战
魔方云NAT建站如何实现端口转发?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
如何在Windows环境下新建FTP站点并设置权限?
详解MySQL数据库的安装与密码配置
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
网页设计与网站制作内容,怎样注册网站?
利用vue写todolist单页应用
如何快速查询网址的建站时间与历史轨迹?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
如何快速生成高效建站系统源代码?
如何在阿里云香港服务器快速搭建网站?
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】

