<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>UI 优化 on PlumePHP</title><link>https://plumephp.com/tags/ui-%E4%BC%98%E5%8C%96/</link><description>Recent content in UI 优化 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 05 Jun 2026 10:42:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/ui-%E4%BC%98%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>Godot 大型背包列表优化：虚拟滚动、复用与可预测的 UI 成本</title><link>https://plumephp.com/godot-inventory-virtualized-list-2026/</link><pubDate>Fri, 05 Jun 2026 10:42:00 +0800</pubDate><guid>https://plumephp.com/godot-inventory-virtualized-list-2026/</guid><description>&lt;h2 id="背景大型-ui-列表虚拟化为什么值得单独设计"&gt;背景：大型 UI 列表虚拟化为什么值得单独设计&lt;/h2&gt;
&lt;p&gt;背包刚做出来时只有几十个道具，GridContainer 里塞满 ItemCell 看起来很自然。上线前运营导入了几百个材料、碎片、活动道具和临时物品，问题立刻出现：打开背包卡一下，滚动时掉帧，切筛选时节点反复创建，图标异步加载回来还会错位。排行榜、邮件、好友列表也有类似问题。Godot 的 Control 系统很适合做 UI，但大量节点同时存在时，布局、主题、绘制和输入都会变成成本。虚拟列表的目的不是炫技，而是让 UI 成本和屏幕可见数量相关，而不是和数据总量相关。&lt;/p&gt;</description></item></channel></rss>