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

2024-05-05

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

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


好吧,这是正确的答案,也是我的答案。 :-)

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

In the one case http://github.com/commonsguy/cwac-custmenu我想要这个功能,我使用向上/向下按钮创建了一个列表,让用户重新排序。丑陋,但它有效。

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

而且,有一天,我希望能够进行拖放操作ReorderableListView作为一个可重复使用的组件......但我不会屏住呼吸。也许其他人有一个我还没有遇到过的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何允许用户对列表中的项目重新排序? 的相关文章

随机推荐

  • 有没有办法找出我尚未同步的变更集?

    在 TFS 中我可以这样做 gt tf get preview 找出自上次同步以来哪些文件已更改 但我想知道这些文件更改属于哪些变更集 类似 tf历史记录 的输出应用于我缺少的更改 有内置的方法可以做到这一点吗 注意 我是一个命令行人员 因
  • Javascript:typeof表示“函数”,但它不能作为函数调用

    这次我对 Javascript 真的很困惑 var x Array prototype concat call typeof x function x Uncaught TypeError x is not a function 这里到底发
  • Altair 限制条数

    假设我有一个像这样的数据框 label counts 4 4 8 5 5 7 6 6 6 7 7 5 0 0 4 1 1 3 2 2 2 3 3 1 我想用 Altair 制作一个条形图 其中条形的高度是计数 标签是标签 如果我想要前 3
  • 如何在redux中设置初始状态

    我试图弄清楚如何在 redux 中设置商店的初始状态 我在用着https github com reactjs redux blob master examples todos with undo reducers index js htt
  • 如何在 CSS 选择器中使用 JSF 生成的带有冒号“:”的 HTML 元素 ID?

    我一直在使用 JSF 处理一个简单的 Java EE 项目
  • ASP.NET MVC 中的异步控制器

    我检查了 MVC 4 0 中的 System Web Mvc AsyncController 它有注释 提供与 ASP NET MVC 3 的向后兼容性 这是否意味着 MVC 4 中有异步控制器的新实现 MVC 4 0 启用异步控制器以便将
  • DDD 聚合和值对象

    我想问一下关于DDD功能的问题 假设我们有两个聚合 每个聚合都包含值对象地址 根据 Eric Evans DDD 我们应该将聚合彼此隔离 因此第一个聚合的聚合根不能有指向 Address 的链接 坦白说 这对我来说似乎没有意义 所以问题是如
  • 在 Android 的 Exoplayer 中使用 flac 扩展

    我正在尝试使用 ExoPlayer 库FLAC 扩展 https github com google ExoPlayer tree release v2 extensions flac在我的安卓应用程序中 我面临以下问题 并非所有文件都可以
  • 将pillow Image对象转换为JpegImageFile对象

    我裁剪了一张 jpeg 图像 但裁剪后的图像类型是
  • 在保存对话框wxpython中实现“另存为”

    我有一个保存例程 应通过以下方式提示用户 如果当前选择的文件名存在 则提示覆盖 如果当前选择的文件名为空 即 则设置一个对话框要求用户插入文件名 如果当前选择的文件名不存在 则保存 我的代码目前如下所示 但我觉得应该有更好的方法来做到这一点
  • TRESTRequest:是否可以在 POST 请求中使用自定义媒体类型?

    例如 我们有一个 API 需要我们自己的供应商特定内容类型application vnd xxxx custom custom data json但查看 REST Client 的源代码 它似乎总是默认为 REST Types 中的 Con
  • 如何使 TypeScript 输出有效的 ES6 模块导入语句?

    所有主流浏览器 http caniuse com feat es6 module支持 ES6 模块已有一段时间了 这些方法与许多服务器端方法的不同之处在于 它们需要指定要从中导入的确切文件 它们无法使用文件发现 这是有道理的 在 Node
  • 从 React Native 中的数组映射函数动态渲染内容

    我正在尝试从数组中获取数据并使用映射函数来呈现内容 看着 this lapsList 以及相关的 lapsList 函数来理解我想要做什么 结果是没有显示任何内容 视图下的视图等 这是我的简化代码 class StopWatch exten
  • 如何检查函数参数的类型?

    我有一个正在构建功能的应用程序 marshal and apply 它调用一些其他函数 或函子 f有一些论据 marshal and apply的工作是根据参数的类型对参数应用一些特殊的编组f的参数 如果其中之一f的参数是特殊类型 mars
  • 动态调整文本区域大小以适应内容

    这是我使用 netbeans 放入程序中的文本区域 第一张图片显示了我运行程序时文本区域的样子 第二张图片显示了我按下按钮后的文本区域 该按钮将大约 50 个 Hello world 字符串添加到文本区域 仅显示前 6 个 我需要动态增加文
  • 为什么位图图像在 Retina 显示屏上看起来很模糊?

    我没有视网膜设备 但我在网上看到了这个讨论 我读过有关为具有 Retina 显示屏的设备提供 2 倍图像尺寸的解决方案 以确保位图不会变得模糊 但是 我不明白这是如何工作的 首先 正如我所读到的 我假设视网膜显示器的像素密度是四倍 二的平方
  • 如何从 SQLAlchemy 引擎实例获取连接 URL?

    我通过生成一个程序来开始一个程序URL http docs sqlalchemy org en rel 1 0 core engines html highlight url sqlalchemy engine url URL对象并将其传递
  • NoMethodError:未定义的方法“调用”

    运行以下测试套件时 require spec helper describe User do before user User name Example User email email protected cdn cgi l email
  • 有没有办法一次重新编码多个变量?

    我有一个学生成绩单分数的数据集 范围从 D 到 A 我想将它们重新编码为 1 12 的范围 即 D 1 D 2 A 11 A 12 现在我正在起诉revalue函数于plyr 我有几列想要重新编码 有没有比运行更短的方法来做到这一点reva
  • 如何允许用户对列表中的项目重新排序?

    我有一个 Android 应用程序 用户可以在其中将项目添加到列表中 并且我希望他们能够按照自己的意愿对列表中的项目进行重新排序 而不是仅仅向他们提供不同的排序顺序 为项目添加位置设置 它们来自数据库 很容易 但是用户可以使用哪种 UI 元