You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi FMX TVertScrollBox安卓端:强制显示垂直滚动条并隐藏水平滚动条

解决Delphi 10 Seattle安卓端TVertScrollBox滚动条显示问题

针对你遇到的TVertScrollBox在安卓端滚动条自动隐藏设置不生效、水平滚动条意外显示的问题,我分享几个经过验证的解决方案:

1. 直接调用安卓原生API强制设置滚动条属性

Delphi的FMX控件在安卓底层是基于原生Android控件实现的,我们可以直接获取原生ScrollView实例并修改其属性,这是最直接有效的方法。

在你的窗体或者TVertScrollBox的OnResize事件中添加以下代码:

uses
  FMX.Helpers.Android, Androidapi.JNI.Widget, Androidapi.JNI.JavaTypes;

procedure TYourForm.VertScrollBox1Resize(Sender: TObject);
var
  LNativeScrollView: JScrollView;
begin
  // 获取安卓原生ScrollView的实例
  LNativeScrollView := TJScrollView.Wrap(VertScrollBox1.GetObject);
  if Assigned(LNativeScrollView) then
  begin
    // 强制启用并始终显示垂直滚动条
    LNativeScrollView.setVerticalScrollBarEnabled(True);
    LNativeScrollView.setScrollbarFadingEnabled(False); // 关闭滚动条自动淡出
    
    // 彻底禁用水平滚动条
    LNativeScrollView.setHorizontalScrollBarEnabled(False);
  end;
end;

代码说明:

  • GetObject方法可以获取FMX控件对应的安卓原生控件实例
  • setScrollbarFadingEnabled(False)会让垂直滚动条一直保持可见,不会在滚动结束后消失
  • setHorizontalScrollBarEnabled(False)直接关闭水平滚动条的渲染,从根源避免其显示

2. 确保FMX层面的基础属性设置正确

在动手写代码前,先确认TVertScrollBox的基础属性配置:

  • 将ScrollBarVisible设为True
  • 将AutoHide设为False
    虽然安卓端可能不完全遵循这些FMX属性,但正确设置可以避免潜在的冲突。

3. 自定义TVertScrollBox子类(可选)

如果希望控件从创建时就应用这些设置,可以自定义一个子类并重写CreateHandle方法:

type
  TPersistentVertScrollBox = class(TVertScrollBox)
  protected
    procedure CreateHandle; override;
  end;

procedure TPersistentVertScrollBox.CreateHandle;
var
  LNativeScrollView: JScrollView;
begin
  inherited;
  LNativeScrollView := TJScrollView.Wrap(GetObject);
  if Assigned(LNativeScrollView) then
  begin
    LNativeScrollView.setVerticalScrollBarEnabled(True);
    LNativeScrollView.setScrollbarFadingEnabled(False);
    LNativeScrollView.setHorizontalScrollBarEnabled(False);
  end;
end;

之后在设计界面时,用这个自定义控件替换原生的TVertScrollBox即可。

额外注意事项

  • 检查VertScrollBox内的所有子控件,确保它们的宽度不会超出VertScrollBox的范围,避免触发水平滚动的需求
  • Delphi 10 Seattle的FMX安卓绑定存在一些小bug,若上述方法无效,尝试清理项目并重新编译安卓包

内容的提问来源于stack exchange,提问作者Scott Lynn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:51:37