【问题标题】:Firemonkey - Tips for Positioning Components in Mobile ApplicationsFiremonkey - 在移动应用程序中定位组件的技巧
【发布时间】:2014-02-06 23:15:14
【问题描述】:

据我了解,在 Delphi for Android 中,我以像素为单位设置组件的宽度和高度。因此,在各种屏幕上都会有明显的差异。我希望有一种方法可以在 dp units 中设置大小而不是(或类似的)。

ActionBar: TToolBar;

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

如您所见,我手动设置了尺寸。我拒绝使用布局的原因是我将 FMX 与原生 Android 组件混合在一起。
我希望我的操作栏在各种屏幕上看起来都很漂亮:) 实现这一目标的正确方法是什么?

【问题讨论】:

  • 您可以使用表单高度/宽度的百分比吗?
  • @MikeSutton,我今天想到的最好的方法是计算 dp 常数。根据 Android 开发指南px = dp * (dpi / 160);dp = px / (dpi / 160);。刚才我找到了dp := px * SharedActivityContext.getResources.getDisplayMetrics.density;

标签: android delphi android-layout firemonkey delphi-xe5


【解决方案1】:

我使用布局来放置每个组件。我制作了几排布局,没有为任何东西设置大小,但你需要调整它。例如,如果您有一个包含 10 行标签和编辑的表单。添加10个布局并将它们对齐到顶部,然后在布局中添加一个标签并将其左对齐并添加一个编辑并将其对齐所有客户端。这样所有组件都会正确调整大小!

查看此链接了解更多信息: Layouts

【讨论】:

    【解决方案2】:

    我使用 Tlayout 及其变体。我遇到了同样的问题,我能解决的唯一方法就是。如果您想了解其他信息,请使用 Google 术语 Delphi Responsive。美好的一天。

    【讨论】:

    • 您好,欢迎来到 Stack Overflow。这里的答案应该是有用和完整的,而不是只包含链接或谷歌搜索术语的建议。请编辑您的答案以包含相关信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多