Fragment 生命周期:布局在屏幕可见前需执行的代码应放置在何处
Fragment可见前执行前置逻辑的合理放置位置及实现示例
- 核心放置规则:需要在用户感知到Fragment界面前执行的校验、跳转类逻辑,应当放在
onViewCreated()方法中。- 避坑提示:不要将这类逻辑放在
onStart()、onResume()中,不然用户会先看到MainFragment界面短暂闪屏,之后才触发跳转,体验很差。 - 选择原因:这个阶段视图已经初始化完成,能安全拿到关联的
NavController做跳转,不会出现非法状态异常,同时还没走到前台展示的流程,用户根本看不到当前Fragment的界面。
- 避坑提示:不要将这类逻辑放在
以MainFragment.kt为例的登录状态分流实现
按照上述位置放置逻辑,开发者仅需补充以下校验规则即可完成分流:
- 轻量读取本地存储的用户登录状态标记
- 若校验结果为未登录:直接触发导航跳转至
LoginFragment.kt - 若校验结果为已登录:直接触发导航跳转至
HomeFragment.kt
提醒:这类分流校验逻辑尽量做轻,别在这个方法里跑网络请求这类耗时操作,不然会拖慢应用启动速度。
内容的提问来源于stack exchange,提问作者Jerry Matera
相关产品推荐
相关产品推荐

