如何允许用户重新排序列表中的项目?

Posted

技术标签:

【中文标题】如何允许用户重新排序列表中的项目?【英文标题】:How can I allow a user to re-sort items in a list? 【发布时间】:2011-01-18 09:36:48 【问题描述】:

我有一个 android 应用程序,用户可以在其中将项目添加到列表中,我希望他们能够根据需要对列表中的项目进行重新排序(而不是仅仅为他们提供不同的排序顺序)。为项目添加位置设置很容易(它们来自数据库),但是用户可以使用哪些类型的 UI 元素来指示所需的顺序?

有没有人见过为此实现的模式?除了主屏幕相似但看起来有点超出我的专业知识之外,我还没有在 Android 上看到任何类似的东西。我能想到的最好的方法是使用长按和上下文菜单来“上移”或“下移”。

【问题讨论】:

【参考方案1】:

嗯,有正确的答案,还有我的答案。 :-)

正确的答案是拖放。音乐应用程序的 Android 源代码中有一些代码,但现在触摸事件超出了我的技能水平。

在one case 我想要这个功能,我使用向上/向下按钮创建了一个列表,让用户重新排序。丑陋,但它有效。

正如您所指出的,使用上下文菜单当然可以工作,但如果您可以节省屏幕空间,那么打开按钮会更容易。您甚至可以考虑通过选项菜单打开/关闭按钮的可见性,如果让它们一直在屏幕上会令人不快。

而且,有一天,我希望将ReorderableListView 拖放为可重复使用的组件……但我不会屏住呼吸。也许其他人有我还没有遇到过的。

【讨论】:

【参考方案2】:

经过一番搜索和浏览,我刚刚找到了这个:Android List View Drag and Drop sort。我认为在这里链接它是有意义的,因为这是在 android 中搜索可重新排序列表时出现的第一个问题。

【讨论】:

以上是关于如何允许用户重新排序列表中的项目?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jQuery UI 中将多个可排序列表相互连接?

同一页面上的两个重新排序列表框,防止用户在之间拖放

在 Flutter 中通过拖放重新排序 SliverList 中的项目

应该如何对列表中的项目进行重新排序,并更新多个对象,如何使用 GraphQL 突变进行持久化?

基于排序子集排序完整集

重新排序有序列表