如何配置Delphi FMX Android中TFramedVertScrollBox右侧垂直滚动条
Delphi FMX Android TFramedVertScrollBox 配置问题解决方案
问题1:让TLayout子组件自动避开垂直滚动条
问题根源是给TLayout硬设置了Size.Width:=800,强制子组件宽度固定,无法自动适配滚动框扣除滚动条后的内容区域。正确设置步骤:
- 移除所有TLayout的
Size.Width:=800代码,完全依赖Align:=Top和Anchors:=[akLeft, akTop, akRight]自动计算宽度。 - 保持TFramedVertScrollBox的
ShowScrollbars:=True,此时滚动框的Content区域会自动预留滚动条空间,子组件宽度将适配Content的客户端宽度,不会覆盖滚动条。 - 无需给TLayout设置
Padding.Right,否则会导致子组件左移,不符合预期。
调整后的TLayout属性代码:
Align:=Top; Anchors:=[akLeft, akTop, akRight]; // 移除Size.Width:=800这一行
问题2:增大垂直滚动条的宽度
直接通过代码修改滚动条宽度即可:
- 在TFramedVertScrollBox的属性设置中添加
VerticalScrollBar.Width,设置为你需要的数值(比如20像素),该值直接控制滚动条的显示宽度。 - 若需要扩大滚动条的触摸响应范围,可保留
TouchTargeExpansion.Right的设置,它会在滚动条外侧增加可触摸区域,不影响滚动条本身的显示宽度。
调整后的滚动框属性代码:
Margins.Right:=20; ShowScrollbars:=True; TouchTargeExpansion.Right:=80; Width:=800; VerticalScrollBar.Width:=20; // 设置滚动条宽度
内容的提问来源于stack exchange,提问作者TomR
相关产品推荐
相关产品推荐

