本页面由葡萄牙语机器翻译,可能存在错误。葡萄牙语版本为准。
渲染问题
屏幕没有反映代码所做的更改。格式:症状 → 原因 → 修复。
“我改了一个值,屏幕却不更新”
原因: 渲染是按需的——CrossFly 只在被请求时才重绘。
修复: 调用 Component.repaint();如果你“在外部”改变了尺寸/位置,还要调用 setValidLayout(false)(框架的大多数 setter 已经会这样做;而你手动改动的部分不会)。(第 4 章 §4.6)
设置的颜色消失 / 组件变得不可见
原因: 颜色是 int 类型的 ARGB 0xAARRGGBB,而你用了 0xRRGGBB(alpha 为 0)。
修复: 加上 0xFF… 前缀。
// 0x2196F3 → 不可见(alpha 00)
// 0xFF2196F3 → 不透明蓝色
(第 11 章 —— 颜色)
更换子组件后布局不重新计算
原因: 忘记使布局失效。
修复: container.setValidLayout(false); + Component.repaint();。
UI 在旧设备上卡顿 / 出现锯齿
原因: GPU 性能弱。
修复: 检查 Screen.slowGPU,在这种情况下减少阴影/渐变/玻璃效果。
(第 8 章 —— Rendering)
主题切换了,但旧组件没有跟着变
原因: 样式缓存会按 styleVersion 重新解析(PalColor 颜色会在下一帧重新解析)——通常在 setColorScheme/setDarkMode 时自动完成。
修复: 如果某些内容没有跟上,就对窗口强制调用 restyle() 或调用 Component.repaint()。
(明/暗模式)
另请参阅
这个页面有帮助吗?感谢你的反馈!