【发布时间】:2016-04-20 08:39:59
【问题描述】:
我使用的是 Titanium SDK 5.1.2.GA。我在 Android 和 iOS 上有一个类似 TabGroup 的栏。我在视图中没有完全可见时移动滚动,然后单击该选项卡。
在 iOS 上完美运行,但在 Android 上无法正常运行。
这是我移动滚动视图的代码:
if((view.rect.x + view.rect.width) > (toolbarX + $.toolbar.rect.width)){
$.toolbar.scrollTo(((view.rect.x + view.rect.width) - $.toolbar.rect.width) + 10, 0);
}else if(view.rect.x < toolbarX){
$.toolbar.scrollTo(view.rect.x - 10, 0);
}
$.toolbar -> 滚动视图
视图 -> 选项卡
这张照片解释了我的问题:
我在互联网上看到了这张 JIRA 票 https://jira.appcelerator.org/browse/TIMOB-17954
这会是问题吗??
编辑
这个问题是由 Appcelerator 上的新单位系统引起的。
我的 tiapp.xml 上有这一行
<property name="ti.ui.defaultunit" type="string">dp</property>
但是 Titanium 上的其他函数在 px 上返回它们的值,所以这是一个问题。
我现在的问题是:
- 什么单元返回事件侦听器,如“滚动”? (px 或 dp)
因为我的
toolbarX = e.x来自滚动事件 - 哪些单位需要scrollTo(x,y)????
【问题讨论】:
-
安卓有什么问题?也许您必须在 Android 上使用以下命令将坐标 dp 转换为 px:docs.appcelerator.com/platform/latest/#!/api/…。如果您使用Alloy,您可以使用这个完美运行的小部件(或查看小部件代码来解决您的问题)github.com/manumaticx/pagingcontrol
-
谢谢@ThomasLemaitre 我不知道这个小部件。我会尝试它,因为 dp 到 px 也不起作用
-
您链接的票确实似乎是问题所在。但我可以问一下,为什么你要使用 Views 和 ScrollViews 来构建它,而不是使用看起来与你的截图一模一样的内置 TabGroup?
-
因为我需要在 iOS 上同样的显示。什么单位返回滚动事件? px 还是 dp?
-
还有scrollTo()???您必须将单位放在 px 或 dp 中???
标签: appcelerator appcelerator-mobile appcelerator-titanium