资讯详情

第126篇Fragment 事务与回退栈:add、replace、show、hide

📅 2026/10/10 2:42:26 | 华诺云谱 👁 阅读
第126篇Fragment 事务与回退栈:add、replace、show、hide
先把结论放在前面:Fragment 事务是异步的、有队列的,回退栈是 FragmentManager 维护的一条独立记录,两者都不是"调用即生效"。show/hide不走销毁流程,切换快但视图状态与内存常驻;replace+addToBackStack走完整生命周期,能回退但每次都重建视图。选哪种,取决于是否需要回退和是否在乎内存——这是判断题,不是知识点。Fragment 事务与回退栈是高频考点,但答好的人不多。这篇带你从零理清它的原理、用法和坑。事务的机制:为什么 commit 后立刻找不到视图FragmentTransaction.commit()不会立刻执行,它只是把事务对象塞进FragmentManager.mPendingActions队列,真正的执行发生在FragmentManager的执行时机——通常是主线程消息循环的下一轮(FragmentManager通过Handler调度),或由commitNow()立刻同步执行。这个机制带来三个直接推论,答出来就是层次:①事务可以合并。连续多次add/hide会在一轮里一起执行,所以中间状态不会渲染出来,这也是为什么"批量改动要放进同一个
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑