当前位置:首页>鸿蒙APP>鸿蒙原生软件界面布局中的那些坑

鸿蒙原生软件界面布局中的那些坑

  • 2026-08-16 11:33:34
鸿蒙原生软件界面布局中的那些坑

我准备连载一个原生鸿蒙开发系列,希望通过系列文章带你一同了解我是如何从0开发一款鸿蒙原生软件的,欢迎订阅关注。

一次持续 12 小时的原生鸿蒙开发调试经历

我竟然发现了原生鸿蒙的一个底层 bug

Vibe Coding原生鸿蒙软件需要鸿蒙专家上阵

实战复盘2026.08.09

鸿蒙布局修复的辗转实录

三个修复 commit,三轮被截图打脸,最后栽在键盘避让模式的默认值

终极答案只有一行设置,而它的默认值,恰好是个坑

HarmonyOS布局修复

编者按

开场白

一个详情页的布局问题,我修了三轮。第一轮干掉顶部 140vp 的大空白,第二轮干掉“返回按钮被正文压住”,第三轮才挖到最深的雷:键盘弹起后,正文前 5-6 行永远滑不到。我把滚动容器从 Scroll 换成 List、把 padding 挪来挪去,全都没用。最后翻开 SDK 源码才发现,问题压根不在我的代码里——鸿蒙键盘避让模式的默认值是 OFFSET(布局整体上移),不是我以为的 RESIZE(内容区缩小)。

01

PART

背景:一个「看起来很正常」的详情页

BACKGROUND

我在做的 memos 鸿蒙版,详情页长这样:

...text

┌─────────────────────┐

│ ← 详情 编辑 │ ← 标题栏(浮层)

├─────────────────────┤

│ 时间行 / 标题 │

│ 正文(可滚动) │ ← 内容区

│ ... │

├─────────────────────┤

│ 写评论… 发送 │ ← 评论栏

└─────────────────────┘

设计意图很简单:标题栏浮在顶部正文独立滚动评论栏钉在底部;键盘弹起来时,评论栏浮到键盘上方,正文该滚还是滚。

就这么个“简单”布局,花了我几个小时的时间,我打了三场战役,提交了三个修复 commit。每一场都以为“这次稳了”,结果都被下一张截图打脸。

02

PART

第一场战役:140vp 的顶部空白

CAMPAIGN Ⅰ

2.1现象

第一张截图:详情页顶部,从“详情”标题到“16 分钟前”之间,是一大块纯空白,目测占了屏幕快五分之一。一句话:这空白也太大了。

2.2初代方案:叠了三层 padding

我打开代码一看,好家伙,同一个“让位”动作,我做了三遍

层级
让位
效果
Column
padding(top: 56)
让位 titlebar 56vp
Scroll
padding(top: 40)
再让位视觉粘连 40vp
Scroll
padding(bottom: 56)
让位评论栏 56vp
NavDestination
expandSafeArea([TOP])
内容延伸到状态栏下方

56 + 40 + 56,加上 titlebar 自身的高度,顶部一共让出去 150vp 以上——不空白才怪。

「战术上的勤奋,掩盖战略上的懒惰」 ——每修一次键盘或标题栏问题,就往布局上叠一层 padding,从没想过这些 padding 会不会互相打架。

2.3修复:砍 padding,拆 expandSafeArea

第一轮手术:

  • 删掉 expandSafeArea([SYSTEM],[TOP])——它让内容延伸到状态栏下方,把透明 titlebar 拉成了与内容同级的节点;
  • Column 不再手动让位 titlebar(交给 NavDestination 默认行为);
  • Scroll 顶部 padding 从 40 砍到 12,底部从 56 砍到 24;
  • 顺手删了手动监听键盘高度的 keyboardHelper——评论栏是 Column 的兄弟节点,NavDestination 会自己让位。

编译、部署、截图:空白没了,内容紧贴标题栏下方,漂亮。我以为这仗打完了。结果 7 分钟后,第二张截图来了。

03

PART

第二场战役:返回按钮被「国家」两个字压住

CAMPAIGN Ⅱ

3.1现象

第二条 memo 是一篇很短的:“国家高等教育平台 https://higher.smartedu.cn #resource”。键盘弹起来之后,「国家」两个字直接压在返回按钮「←」的圆角背景上。返回图标还是有遮挡。

3.2根因:titlebar 是浮层,不占 flow 空间

我盯着截图看了半天,突然意识到一个之前完全忽略的事实:NavDestination 的 titlebar(包括系统自带的「←」返回按钮)是浮层,它不占 Column 的布局空间

也就是说,Column 内容是从屏幕最顶上开始排的,titlebar 是「盖」在上面的。你必须在 Column 顶部留出足够的 padding,才能让内容避开浮层

3.3为什么长 memo 一直没事

最坑的是:长 memo 一直表现正常,短 memo 一测就露馅

原因很「巧合」:长 memo 内容超高,Scroll 自动向下滚动,顶部 padding 让位生效,第一行正文天然离 titlebar 远远的;短 memo 内容没超出屏幕,Scroll 不滚动,第一行正文就直接顶到 titlebar 浮层底下——于是和「←」重叠了。

长 memo 的「正常」,是滚动行为撞出来的巧合,不是布局本身正确。

3.4修复与教训

第二轮手术:Column 重新加回 padding(top: 56) 让位 titlebar 浮层,Scroll 留 12vp 做视觉呼吸。两层各司其职,不冲突。

测试必须覆盖所有内容形态 ——长 memo、短 memo、纯文本、带代码块、带图片,一个都不能少。你信誓旦旦说「修好了」,很可能只是因为你测的那条 memo 恰好长。

04

PART

第三场战役:前 5-6 行永远滑不到

CAMPAIGN Ⅲ

4.1现象

第二场打完,我以为圆满了。结果又发现了新问题:“长 memo,写评论弹出键盘后,正文可以上下滑动,但无法滑动到最前面的部分(前 5-6 行高度)。”时间行、标题,那前 5-6 行的内容,永远滑不到

4.2弯路一:Scroll padding 的锅?无效

我先怀疑 Scroll 自身的 padding 在键盘弹起(viewport 高度骤变)时导致 contentSize 计算错误,于是把 Scroll 的 padding 全部挪到内容 Column 上。编译、部署、测:无效。内容照样卡死。

4.3弯路二:换 List?还是无效

我又想:Scroll 在高度骤变时测量不可靠,那就换成 List 吧——List 对 viewport 变化的测量应该更成熟。改造、部署、测:还是无效。offset 照样卡在 392px。两轮弯路让我警觉:这恐怕不是滚动容器的问题

4.4决定性证据:fling 测试 + dump 对比

我做了一个之前没想到的测试:用 uitest uiInput fling 以 velocity=3000 的大力度向下甩。结果:内容纹丝不动

Scroll/List 已经滚到物理最小值了,但内容顶部(时间行)还是不在可视区。这只有一种解释:内容顶部根本没在布局里,或者被推到了屏幕外。再 dump 布局对比,发现更诡异的:键盘弹起时,Column 的 padding(top:56) 像是「失效」了——Scroll 直接顶到 y=139(状态栏下方)。我一度以为是不是撞上了 ArkUI 的布局 bug。

4.5翻 SDK 源码:KeyboardAvoidMode 默认 OFFSET

后来我决定不猜了,直接翻 SDK 源码。在 @ohos.arkui.UIContext.d.ts 第 4389 行,一行注释让我瞳孔放大:

...ts

* Default mode: **KeyboardAvoidMode.OFFSET**.

鸿蒙键盘避让的默认模式是 OFFSET——布局整体上移,不是 RESIZE——内容区高度缩小。OFFSET 模式下,键盘弹起的瞬间,整个布局(包括滚动容器)整体上移了键盘高度。滚动容器顶部被推到屏幕上方——也就是 titlebar/状态栏覆盖的区域。于是:

  • offset=0 时,滚动容器显示的内容顶部,恰好落在屏幕上方不可见区;
  • 用户向下滑,滚动容器已经到物理最小值,永远够不到那 392px
  • 我之前以为「padding 失效」,其实是布局整体上移,把 padding 的让位效果抵消了——数据没骗我,是我解读错了

数据没骗我,是我解读错了 ——dump 显示「padding 失效」,实际是布局整体上移抵消了 padding。

这就像「换游泳池解决不了不会游泳」:滚动容器(游泳池)没问题,是整个池子被抬到二楼去了

4.6修复:一行代码 + 一个冗余保险

第三轮手术,核心只有一行:

...ts

this.getUIContext()?.setKeyboardAvoidMode(KeyboardAvoidMode.RESIZE);

RESIZE 模式下,键盘弹起时内容区高度缩小、顶部位置保持不变,offset=0 就是内容顶部,评论栏作为 Column 底部兄弟节点自然浮到键盘上方。

至于前面那个 List 改造——我保留了它当「冗余保险」(List 对 viewport 变化测量更成熟),但说实话,真正的修复就是那一行。部署、验证:时间行回来了,“50 分钟前”清晰地躺在标题栏下面,向上向下都能滚,短 memo 也没回归。三场战役,到此收官

05

PART

复盘:五个教训

LESSONS

 ① 系统默认值,是最隐蔽的敌人。 

我调了三个小时滚动容器,最后栽在一个「默认是 OFFSET」上。读 SDK 文档、翻源码,比反复试代码快得多。鸿蒙还很年轻,很多默认行为反直觉,别信「应该是什么样」,去查「实际是什么样」。

 ② 视觉正常 ≠ 所有状态正常。 

长 memo 正常掩盖了短 memo 的问题;无键盘正常掩盖了键盘弹起的问题。以后布局改完,所有内容形态 + 键盘开关都要过一遍。

 ③ 换容器救不了「布局语义」问题。 

Scroll 换 List,问题原样复现——因为根子在 NavDestination 的键盘避让行为,不在滚动容器。先定位「问题属于哪一层」,再动手。

 ④ 数据会骗人,但更多时候是我们解读错了。 

dump 显示「padding 失效」,实际是布局整体上移抵消了 padding。多做一个「大力度 fling 触底测试」,比盯着数字猜强。

 ⑤ 反常的信号要抓住。 

「内容滑到物理底了却还看不到开头」——这个信号足够反常,反常到应该立刻怀疑「底层行为」,而不是继续调参数。

///

END

写在最后

三场战役 · 三个 commit

三场战役,三个 commit(a43edfb9afbe1b733f659),从「砍 padding」到「让位浮层」再到「改键盘避让模式」,方案辗转反复,最后发现终极答案是一行设置——而这一行的默认值,恰好是个坑

与诸君共勉。

高手和普通人的区别,往往不是谁更努力,而是谁先读到那行注释

我是 刘顾问,关注我,我们一同进步。

如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见

在看
收藏

THANKS FOR READING

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-18 10:19:09 HTTP/2.0 GET : https://c.mffb.com.cn/a/503581.html
  2. 运行时间 : 0.185699s [ 吞吐率:5.39req/s ] 内存消耗:4,266.89kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2cb8e9c448d1ecb8ab84781edb7a19e3
  1. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/runtime/temp/cefbf809ba1a84190cb04b0cb7abcf79.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001191s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001677s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000788s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001373s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001318s ]
  6. SELECT * FROM `set` [ RunTime:0.001798s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001513s ]
  8. SELECT * FROM `article` WHERE `id` = 503581 LIMIT 1 [ RunTime:0.001503s ]
  9. UPDATE `article` SET `lasttime` = 1787019549 WHERE `id` = 503581 [ RunTime:0.004504s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000604s ]
  11. SELECT * FROM `article` WHERE `id` < 503581 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001154s ]
  12. SELECT * FROM `article` WHERE `id` > 503581 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001114s ]
  13. SELECT * FROM `article` WHERE `id` < 503581 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001637s ]
  14. SELECT * FROM `article` WHERE `id` < 503581 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005190s ]
  15. SELECT * FROM `article` WHERE `id` < 503581 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002334s ]
0.189364s