当前位置: 首页 > news >正文

Android Fragment - fragment、FragmentContainerView、NavHostFragment、用户 Fragment 之间的关系、Fragment 中隐藏软键盘

fragment、FragmentContainerView、NavHostFragment、用户 Fragment 之间的关系

  1. fragment的 name 属性用于在布局文件中静态声明一个 Fragment(指定该 Fragment 的具体实现类)

  2. androidx.fragment.app.FragmentContainerViewfragment是容器,androidx.fragment.app.FragmentContainerViewfragment的增强版

  3. androidx.navigation.fragment.NavHostFragment是一个有特殊导航功能的 Fragment,通常被放在前两者里面

  4. 层级关系:FragmentContainerView->NavHostFragment->用户 Fragment


Fragment 中隐藏软键盘

1、具体实现
privatevoidhideSoftKeyboard(){InputMethodManagerinputMethodManager=(InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);if(inputMethodManager!=null)inputMethodManager.hideSoftInputFromWindow(getView().getWindowToken(),0);}
2、解读
(1)获取 InputMethodManager 实例
InputMethodManagerinputMethodManager=(InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
getActivity 是 Fragment 的方法,返回该 Fragment 所属的宿主 Activity 在 Fragment 生命周期中,只有onAttach 方法执行后到 onDetach 方法执行前,getActivity 方法才不返回 null 现代 Android 开发推荐使用 requireActivity 方法,它会在 Activity 为 null 时抛出明确异常而非返回 null
getSystemService 是 Activity 的方法,用于获取系统服务 参数 `Context.INPUT_METHOD_SERVICE` 是常量字符串 `"input_method"`,标识输入法服务 返回的是 Object 类型,需要强制转换为 InputMethodManager
InputMethodManager 是 Android 系统中管理输入法(IME)的核心类 负责软键盘的显示、隐藏和各种交互 是系统级单例服务,不能直接实例化,必须通过 getSystemService 获取
(2)空安全检查
if(inputMethodManager!=null)
系统服务理论上不应该为 null,但良好的编程习惯应该做防御性检查 如果系统处于异常状态或权限问题可能导致获取服务失败 在 Android 8.0(API 26)及以上版本,getSystemService 方法基本不会返回 null
(3)隐藏软键盘
inputMethodManager.hideSoftInputFromWindow(getView().getWindowToken(),0);
getView 是 Fragment 的方法,返回该 Fragment 的根视图 只有在 onCreateView 方法执行后才会非 null 现代开发推荐使用 requireView 方法替代,它会在视图为 null 时抛出明确异常
getWindowToken 是 View 的方法,返回该视图关联的窗口令牌(WindowToken) WindowToken 是系统用于识别窗口的唯一标识 软键盘总是关联到某个窗口,需要这个令牌来确定操作哪个窗口的键盘
hideSoftInputFromWindow 方法参数详解 第 1 个参数:窗口令牌,告诉系统要隐藏哪个窗口的软键盘 第 2 个参数:隐藏标志,通常为 0 或以下常量: 0:默认方式 InputMethodManager.HIDE_IMPLICIT_ONLY:只隐藏自动弹出的软键盘 InputMethodManager.HIDE_NOT_ALWAYS:非强制隐藏,系统可能拒绝
http://www.zskr.cn/news/1489626.html

相关文章:

  • 搬过5次家才懂!2026广州搬家避坑指南+真正靠谱的5家老牌机构推荐 - 从来都是英雄出少年
  • 构建现代化后端技术栈:拥抱DevOps与自动化部署
  • Android 控件 - ViewPager 的适配器(PagerAdapter、FragmentPagerAdapter、FragmentStatePagerAdapter)
  • RAG实战面试避坑指南:从Demo到系统设计的进阶秘籍
  • 国标权威认证加持|融景科技斩获两项国家级一级行业资质、两项底层自研软著,定义 AI 搜索优化技术标准 - 广东科技观察
  • 保姆级避坑指南:从离线镜像到VSCode调试,搞定gem5 GCN3 Docker环境全流程
  • Python开发进阶之路:掌握高级技巧与最佳实践
  • 聊聊为什么 AI 时代需要一个Token流量网关?
  • 2026年数控折弯机专业定制制造商口碑排名,武嘉数控上榜 - mypinpai
  • 3步搭建私人云游戏服务器:Sunshine游戏串流平台完全指南
  • 2026数控齿轮倒角机实测评测:浙江链笼倒角机、浙江齿条倒角机、齿条磨棱倒角机、数控齿轮倒角机、法兰倒角机、浙江球笼倒角机选择指南 - 优质品牌商家
  • 从TI DSP到NXP Arm MCU的电机控制平台迁移实战指南
  • 2026兰州工业提升门厂家TOP5推荐:兰州工业门价格、兰州工业门厂商、兰州工业门厂家、兰州工业门厂家电话、兰州工业门批发选择指南 - 优质品牌商家
  • IDEA条件断点实战:让循环调试不再‘刷屏’,精准捕捉Bug瞬间
  • 四川车间隔音降噪厂家排行:四川水泥厂噪音治理/四川水泵房噪音治理/四川水泵隔音降噪/四川空调噪音治理/四川空调外机隔音降噪/选择指南 - 优质品牌商家
  • 如何突破网盘下载限速:LinkSwift直链下载助手的完整实战指南
  • 2026广州高口碑搬家公司盘点:本地街坊邻居从询价到入住的全景实录 - 从来都是英雄出少年
  • 飞书文档转Markdown:如何用Go语言实现企业级文档迁移方案
  • 5分钟彻底告别风扇噪音:Windows风扇控制神器FanControl完整指南
  • 告别臃肿客户端!用Oracle Instant Client + Navicat 15实现轻量化数据库管理(Win10实测)
  • 从情报工具到企业级数据平台:拆解Palantir Gotham的五大核心技术支柱
  • 可视化各种库的用法并区分其作用
  • JavaPackager保姆级教程:一键打包JavaFX应用为Windows安装包(含自定义JRE和图标)
  • 2026武汉配眼镜推荐,花多少钱才合理,五家店的实际花费横向对比 - 配眼镜新资讯
  • 终极免费视频图片压缩神器:CompressO让你的存储空间瞬间翻倍
  • 【优化求解】基于混合鸟群粒子群优化算法用于MRS的碰撞避免和连接保持附matlab代码
  • 抖音批量下载神器:3分钟掌握高效内容收集终极指南
  • 2026充氮烘箱厂家推荐及行业应用解析 - 品牌排行榜
  • 2026年AI编程工具终极横评:Cursor、Claude Code、MonkeyCode谁更强?
  • 从故障录波到数据分析:COMTRADE文件在继电保护调试中的实际应用全流程