【问题标题】:drag and drop sorting of rows in titanium alloy app钛合金app中行的拖放排序
【发布时间】:2016-05-04 16:45:06
【问题描述】:

我正在尝试使用适用于 Android、iOS 和 Windows 平台的 JavaScript 在我的钛合金应用程序中实现行的拖放排序。到目前为止,我可以使用触摸事件拖放视图。但是我已经遇到了一些问题,例如动画不流畅等。我还需要构建一个算法来对行进行排序。我已经搜索了 appcelerator 档案,在那里找不到一个好的方法。

有人可以帮助我实现它吗?是否有任何资源可以帮助我实现这一目标?

【问题讨论】:

    标签: javascript appcelerator appcelerator-titanium


    【解决方案1】:

    有一些模块可以帮助您进行拖放:

    例如https://github.com/viezel/TiDraggablehttps://github.com/animecyc/TiDraggable

    这些是https://github.com/pec1985/TiDraggable/network 的分支,因此请务必检查该页面以查看是否有更新的分支。

    当您说“不流畅”时,您指的是什么动画?这取决于您拖动的行的内容。如果要移动的项目太多,最好创建一个“幽灵”项目(只是一个带有彩色背景的视图)并移动它。放手后,您将再次删除/添加原始容器。

    关于排序:

    你必须自己实现它。但基本上你知道你正在拖动哪个元素(给每个项目一个 id),然后找出你将项目拖动到哪个位置(通过 y 位置或检查你手指下的元素)。然后只需将您的项目移动到那个地方。或者在完成拖动后重新排列一个 json 文件并将其分配给 table/listview。

    iOS 上的列表视图

    如果你在 iOS 上使用列表视图,你可以使用 "canMove" (https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListItem-property-canMove)

    指定项目是否可以通过用户启动的操作在列表视图中重新排序。

    但它仅适用于 iOS。因此,对于跨平台方式,您必须创建自己的排序方式。

    【讨论】:

    • 是的,我想使用github.com/animecyc/TiDraggable,但不能,因为我们在 Windows 上也实现了拖放。我已经开始使用触摸事件来处理它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多