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

Android平台动态ListView文本对象Character裁剪失效求助

解决Android平台FireMonkey ListView文本裁剪无效的问题

针对你遇到的Windows平台文本裁剪正常、Android平台无效果的问题,核心是FireMonkey在Android上对TListItemText的裁剪逻辑需要额外约束配置,以下是具体修正方案:

  • 必须设置MaxLines属性:当WordWrap=True时,Trimming.Character需要配合MaxLines限制文本行数,否则文本会自动换行扩展,不会触发裁剪。比如限制为2行,超出部分就会显示省略号。
  • 确保文本对象有明确的宽度约束:Android平台上如果TListItemText宽度未被限制(比如设为自动扩展),裁剪逻辑不会生效。可以设置Align为Client让它自适应父容器宽度,或者直接指定固定宽度。

修改你的代码如下:

procedure TfrmJob.lvWorksheetsUpdateObjects(const Sender: TObject;
  const AItem: TListViewItem);
var
  TextObj: TListItemText;
begin
  TextObj := AItem.Objects.FindDrawable('Description') as TListItemText;
  TextObj.Trimming := TTextTrimming.Character;
  TextObj.WordWrap := True;
  // 设置最大显示行数,可根据需求调整
  TextObj.MaxLines := 2;
  // 绑定文本对象宽度到列表项宽度,避免溢出
  TextObj.Align := TListItemAlign.Client;
end;

额外注意事项:

  • 若你的Delphi版本低于10.4 Sydney,可能存在FireMonkey Android控件的渲染bug,建议升级到最新稳定版本。
  • 若文本对象嵌套在TListItemLayout中,需确保Layout本身宽度固定或自适应列表项,避免文本对象获得无限制宽度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:37:16