在 fragment 中,`oncreateview()` 返回视图后,其后的代码将无法执行;所有 ui 初始化和事件监听应移至 `onviewcreated()` 中,避免“unreachable statement”编译错误。
在 Android 开发中,Fragment 的生命周期方法调用顺序严格且语义明确。初学者常误将视图操作(如设置点击监听、调用工具方法)写在 onCreateView() 中 return 语句之后,导致编译器报错 Unreachable statement —— 这并非运行时异常,而是 Java 编译期的语法检查结果,表明该行代码永远不可能被执行。
根本原因在于:return 关键字会立即终止当前方法的执行,并将控制权交还给调用方。一旦 onCreateView() 执行到 return binding.getRoot();,后续所有代码(包括 createNotificationChannel() 和 setOnClickListener())都会被跳过。
✅ 正确做法是遵循 Fragment 生命周期规范:
- ✅ onCreateView():仅负责创建并返回根 View(通常通过 ViewBinding 或 LayoutInflater);
- ✅ onViewCreated():在视图成功附加到 Fragment 后立即调用,是进行UI 绑定、事件注册、数据初始化的理想位置。
以下是修正后的标准结构(Java):