Firemonkey - 移动应用程序中组件定位的技巧

3
据我所了解,在Delphi for Android中,我要以像素为单位设置组件的宽度和高度。因此,在不同的屏幕上会有明显的差异。我希望有一种方法可以使用“dp单位”(或类似的单位)来设置大小。详情请参考密度无关性
ActionBar: TToolBar;

ActionBar := TToolBar.Create(Form1);
ActionBar.Align := TAlignLayout.alTop;
ActionBar.Height := 30.0;
ActionBar.Parent := Form1;

正如您所见,我手动设置了尺寸。我拒绝使用布局的原因是因为我混合使用 FMX 和本地 Android 组件。
我希望我的操作栏在各种屏幕上看起来美观:)达到这个目的的正确方法是什么?


你可以使用表单高度/宽度的百分比吗? - Mike Sutton
@MikeSutton,我今天认为最好的事情是计算dp常量。根据Android Dev Guide px = dp * (dpi / 160);dp = px / (dpi / 160);。刚刚我发现dp := px * SharedActivityContext.getResources.getDisplayMetrics.density; - naXa stands with Ukraine
2个回答

2
我使用布局来放置每个组件。我制作布局行,不设置任何东西的大小,但您需要对齐它。例如,如果您有一个包含10行标签和编辑框的表单。添加10个布局并将它们对齐到顶部,然后在布局中添加一个标签并将其左对齐,添加一个编辑框并将其全部客户端对齐。这样所有组件都会正确地调整大小!
查看此链接以获取更多信息: 布局

-1

我使用Tlayout及其变体。我遇到了同样的问题,唯一能解决它的方法是...如果您想要其他信息,请在Google中搜索"Delphi Responsive"。祝您有一个愉快的一天。


1
你好,欢迎来到 Stack Overflow。这里的答案应该是有用且完整的,不应只包含链接或建议去搜索术语。请编辑你的答案以包含相关信息。 - Noich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接