我正在使用钛创建一个 iOS,Android 应用程序,所以我使用 platformWidth
和 platformHeight
乘以数字将我的 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
谢谢