在Android和iOS Titanium上实现相同的布局



我正在使用钛创建一个 iOS,Android 应用程序,所以我使用 platformWidthplatformHeight 乘以数字将我的 UI 视图定位在屏幕尺寸的特定百分比上例如 0.5*platformHeight屏幕中间,所有东西都可以在所有iOS设备尺寸上运行。
但是在安卓设备上,这个值变得太大了

Note i m using "dp" as a default unit 

所以关于如何以这种方式实现相同布局的任何想法

您实际上可以使用百分比作为仓位属性的值。 例如top : '40%' .此百分比是按父级计算的。如果您默认未指定任何位置,则视图将位于父项的中心,除非父项是垂直或水平布局。

另外,您是否指定了默认单位,如下所示?

<property name="ti.ui.defaultunit">dp</property>

如果是这种情况,那么这就是可能发生的事情。假设设备高度为 800px。减半给 400 像素。这是您期望的值。但是,当您再次将此值分配给视图时,它将转换为 DP。因此,结果是400 x设备密度,肯定会大于400。要解决此问题,您可能需要为属性分配类似 top: 0.5*platformHeight+'px' 的内容。我不确定这个技巧是否有效,因为我没有测试它的设置。

来自 Titanium 文档 platformHeight

显示器相对于 UI 方向的绝对高度。以特定于平台的单位衡量;Android 上的像素和 iOS 上的与密度无关的像素 (dip)。

因为 Titanium 使用像素,所以你还需要在 Android 上使用像素,否则对于大多数手机来说,这些值会太大。 DP 基于屏幕的密度,因此 100 dp 在每部手机上的物理尺寸都有些相同。

更多关于这一点可以在这里阅读:http://developer.android.com/guide/practices/screens_support.html

阅读许多专家同意@Malcolm的详细回答。他多次为这个答案投了赞成票

https://developer.appcelerator.com/question/148337/how-to-achieve-same-layout-for-android-and-iphone-using-titanium

谢谢

最新更新