我正在尝试使用适用于Android,iOS和Windows平台的JavaScript在我的钛合金应用程序中实现拖放行的排序。到目前为止,我可以使用触摸事件拖放视图。但是我已经遇到了一些问题,比如动画不顺畅等等。我还需要构建一个算法来对行进行排序。我已经搜索了appcelerator存档,但在那里找不到好的方法。
有人可以协助我实施吗?是否有任何资源可以帮助我实现这一目标?
答案 0 :(得分:2)
有些模块可以帮助您拖放:
e.g。 https://github.com/viezel/TiDraggable和https://github.com/animecyc/TiDraggable
这些是https://github.com/pec1985/TiDraggable/network的分叉,因此请务必检查该页面以查看是否有更新的分叉。
当你说“不顺畅”时,你在说什么动画?这取决于您拖动的行的内容。如果要移动的项目很多,最好创建一个“幽灵”项目(只是带有彩色背景的视图)并移动它。一旦放手,您将再次移除/添加原始容器。
关于排序:
你必须自己实施。但基本上你知道你要拖动哪个元素(给每个项目一个id),然后找出你拖动项目的位置(通过y位置或检查你手指下的元素)。然后只需在那个地方移动你的物品。或者重新排列json文件,并在完成拖动后将其分配给table / listview。
iOS上的ListView
如果您在iOS上使用listview,可以使用“canMove”(https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListItem-property-canMove)
指定是否可以通过用户启动的操作在列表视图中对项目进行重新排序。
但它只适用于iOS。因此,对于跨平台方式,您必须创建自己的排序。