文本 HorzAlign 不适用于运行时创建的标签

Text HorzAlign doesn't work on runtime created Label

在 Android 应用程序中,我试图在运行时将标签创建到矩形中,除文本的水平对齐外,所有属性都工作正常。我的代码有问题吗?

procedure TForm7.Button1Click(Sender: TObject);
var
  lb : TLabel;
begin
  lb := TLabel.Create(Rectangle1);
  lb.Parent := Rectangle1;
  lb.Align := TAlignLayout.Center;
  lb.TextSettings.HorzAlign := TTextAlign.Leading;
  lb.Width := 300;
  lb.TextSettings.Font.Size := 12;
  lb.StyledSettings:=[TStyledSetting.Family,TStyledSetting.Style,
    TStyledSetting.FontColor,TStyledSetting.Size,TStyledSetting.Other];
  lb.Margins.Bottom := 100;
  lb.Text := 'Programming Language is Delphi 10.4 31/3/2022';
end;

您需要阅读 FMX.Graphics.ITextSettings。你会发现TStyledSettingsTTextSettings之间有一个重要的关系。

在您的问题中,您担心水平对齐不符合您的设置:

lb.TextSettings.HorzAlign := TTextAlign.Leading;

那是因为您通过在 lb.StyledSettings 中包含 TStyledSetting.Other 否决了它。

lb.StyledSettings 中删除 TStyledSetting.Other,您将看到 HorzAlignVertAlignTrimmingWordWrap 将跟随您自己的设置。