当前位置: 首页 > 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.jsqmd.com/news/977900/

相关文章:

  • 解锁百度网盘全速下载:macOS用户必备的加速神器
  • 搬过5次家才懂!2026广州搬家避坑指南+真正靠谱的5家老牌机构推荐 - 从来都是英雄出少年
  • 3分钟快速上手:浏览器Cookie管理神器完全指南
  • 5分钟为MusicBee添加网易云歌词插件:彻底告别无歌词尴尬的终极解决方案
  • 恒温恒湿机厂家技术实力拆解及实地服务地址指南:厂房新排风/商用新排风工程/四川恒温恒湿机定制/实验室恒温恒湿机/选择指南 - 优质品牌商家
  • 北京绩效纠纷,杨斯童律师收费标准? - mypinpai
  • 构建现代化后端技术栈:拥抱DevOps与自动化部署
  • OpenAI高管放话“聊天已死”!ChatGPT即将迎来史上最大改版:IPO前的终极产品豪赌?
  • Android 控件 - ViewPager 的适配器(PagerAdapter、FragmentPagerAdapter、FragmentStatePagerAdapter)
  • 2026年5月五金数控车铣零部件厂商排行实测盘点:不锈钢格栅、不锈钢钣金件、不锈钢雨水算子、五金冲压件定制、五金折弯件选择指南 - 优质品牌商家
  • 国标权威认证加持|融景科技斩获两项国家级一级行业资质、两项底层自研软著,定义 AI 搜索优化技术标准 - 广东科技观察
  • 5步实现IPX协议兼容:让经典游戏在现代Windows系统重生
  • 保姆级避坑指南:从离线镜像到VSCode调试,搞定gem5 GCN3 Docker环境全流程
  • RAG实战面试避坑指南:从Demo到系统设计的进阶秘籍
  • 芜湖黄金回收选购全攻略:芜湖附件黄金回收、芜湖首饰回收、芜湖首饰维修、芜湖黄金上门回收、芜湖K金回收、芜湖专业贵金属回收选择指南 - 优质品牌商家
  • 口碑最好的AI论文写作软件推荐(从文献整理到论文成稿全流程)适合全体毕业生
  • 聊聊为什么 AI 时代需要一个Token流量网关?
  • Python开发进阶之路:掌握高级技巧与最佳实践
  • 2026年数控折弯机专业定制制造商口碑排名,武嘉数控上榜 - mypinpai
  • 2026数控齿轮倒角机实测评测:浙江链笼倒角机、浙江齿条倒角机、齿条磨棱倒角机、数控齿轮倒角机、法兰倒角机、浙江球笼倒角机选择指南 - 优质品牌商家
  • 从TI DSP到NXP Arm MCU的电机控制平台迁移实战指南
  • config/WebMvcConfig.java
  • 3步搭建私人云游戏服务器:Sunshine游戏串流平台完全指南
  • 通化古董古玩回收商家甄选:通化市钱币古董回收/通化市钻石回收/通化老酒名酒回收/通化老钱币古董回收/通化高端名表回收/选择指南 - 优质品牌商家
  • MATLAB处理地理TIF数据踩过的坑:geotiffread与imread区别、地理信息丢失怎么办?
  • 2026年10款论文降AIGC工具实测:从90%降至10%的硬核之选
  • 2026年武嘉数控好用吗? - mypinpai
  • Java里给数字‘美颜’:手把手教你用DecimalFormat定制百分比、货币和千分位显示
  • 2026兰州工业提升门厂家TOP5推荐:兰州工业门价格、兰州工业门厂商、兰州工业门厂家、兰州工业门厂家电话、兰州工业门批发选择指南 - 优质品牌商家
  • 影响交换机箱体使用寿命的几个关键因素