问题标签 [itemtouchhelper]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 在拖动/重新排序期间调整 itemTouchhelper 上所有 recyclerview 单元格的大小
我有一个水平回收视图,它实现了用于拖动和重新排序单元格的 ItemTouchHelper 回调。当一个单元格被移动时,我想缩小所有单元格的宽度,以便它们都出现在屏幕上。在 onItemSelected() 中,我可以成功更改当前正在移动的单元格的大小,并在 onItemClear 中恢复。
但是,我想调整所有单元格的大小,而不仅仅是当前单元格。最好的方法是什么?
我尝试在我的适配器类中创建一个函数并通过 notifyDataSetChanged() 调用它来调整大小,但是它正在删除当前正在移动的单元格。
作为我的 ItemTouchHelperCallback 的一部分,有没有办法做到这一点 - 创建与 onItemSelected 类似的函数但更新所有其他单元格?
android - 如何使用 Room 和 LiveData 保持 RecyclerView 顺序的更改?
在 RecyclerView 项目顺序发生更改后,我无法弄清楚我应该如何更新房间数据库中的数据。我应该如何根据用户操作更新 Room 中的 LiveData 项目?
使用 ItemTouchHelper.Callback 我设置了一个 onMove 回调,可以更改呈现给用户的项目顺序(拖放时),但是当我调用更新房间数据库中项目的顺序时,使用ViewModel 对象,然后用户一次只能移动一个项目。所以如果你拖动一个项目,它只会移动一个空格。
这是我在 ListAdapter 中定义的 onMove 函数,它为回调实现了 ItemTouchHelperAdapter。
这是我的 DAO 对象
这是我的 RoomDatabase 对象
这是我实现的 ViewModel 对象。
我希望用户能够移动项目 n 个空格,然后删除,并在用户删除项目时执行对 Room 数据库的更新,但是如果我将 Room 更新放在 onMove 方法中,用户只能移动项目一次。
当对象的顺序在回收站视图中发生变化时,我试图了解更新房间数据的正确方法。我试图让这些对象的顺序保持不变,即使用户退出应用程序或更改活动等。我应该如何使用 LiveData 将这些更改回显到 Room 数据库?
android - ItemTouchHelper.callback 中的 ConvertToAbsoluteDirection()
我正在尝试创建一个带有滑动功能的 Recycler 视图以添加到收藏夹。
我已经阅读过 ItemTouchHelper 类以及如何防止卡片完全滑过。我无法理解下面的功能
有人可以解释返回值和 super.convertToAbsoluteDirection 调用的意义吗?
android - 使用 itemtouchhelper、recyclerview 和 Firestore(如 Google Tasks)拖放项目
我开发了一个待办事项应用程序,并希望拥有类似于 Google Tasks 的功能。这是我的 android 应用程序上的 Google Tasks 任务列表:
当我垂直拖放其中一项任务时,我的 Google Tasks Gmail Webapp 会立即将任务拖放到同一位置:
Google Tasks Gmail Web 应用的屏幕截图
这似乎是一个相当大的挑战,因为我没有找到任何代码示例或文档可以准确地解释/解释 Firestore 和 Firestore 回收器适配器。有一些关于 Firebase 实时数据库的代码示例,但它们并没有太大帮助。我无法想象没有人用 Firestore 编写过这种广泛使用的功能。
您是否知道(在 Github 上)发布的任何 android 应用程序代码或确实/解释了这种行为的文档?或者任何可以提供帮助的 Firestore 专家?
android - 滑动时 ItemTouchHelper 不更新项目
我有一个RecyclerView
使用 anItemTouchHelper
来允许用户滑动每个项目。初始加载时一切正常,但如果RecyclerView
更新中的项目(通过搜索功能)ItemTouchHelper.Callback
,则即使应用程序中显示的项目已更改,这些项目也永远不会更改并且始终是初始项目。
更新:经过一些调试,如果我发现这些项目在onSwiped
. 如果我在 CustomSwipeController 的构造函数中放置断点,则项目会更改,但在项目上滑动时不会更改。
更新2:我想出了一个解决方法。我没有刷新 中的项目onActivityResult
,而是开始了一项新活动,如下所示:
这并不理想,但它有效。
android - 使用 ItemTouchHelper 时如何在 RecyclerView 中取消拖动项目?
背景
我正在尝试拥有一个具有不同视图类型的 RecyclerView,但具有拖放功能,以及单击和长按操作。
它类似于您在电话应用程序上拥有的功能,您可以在其中更改收藏夹项目的顺序。在电话应用程序中,当您长按某个项目时,会立即出现上下文菜单,如果继续拖动,上下文菜单就会消失。
但是,在这种情况下,我需要做相反的事情。长按时,如果用户在很短的时间内没有拖动,或者用户在没有拖动的情况下停止了长按,我们会在屏幕上显示一个对话框,我需要停止拖动过程。
问题
虽然我已经成功处理了长触摸机制,并且我在这些特殊情况下显示了一个对话框,但我未能导致拖动停止。
这意味着,如果即使在对话框出现后用户继续触摸屏幕,仍然可以继续拖动:
完整的代码可以在这里找到(没有长触摸行为的代码在这里),但这里是主要代码:
我试过的
我试图查看 RecyclerView 和 ItemTouchHelper 的所有文档。还试图在这里和互联网上寻找类似的问题。
我看不出有什么方法可以告诉拖动机制:“我现在完成了拖动,取消拖动”。
问题
如何取消由 ItemTouchHelper 发起和维护的拖动?
java - 如何使用具有异构视图类型的项目触摸助手?
我正在关注本教程项目触摸助手示例(实际上只是项目触摸助手部分,因为我希望在滑动时看到带有删除图标的红色背景)。但是我的 recyclerview 中有两种不同的视图类型。我将如何实施它?我被困在这条线上
在onChildDraw方法上的RecyclerItemTouchHelper.java
android - RecyclerView 滑动删除 防止在不可删除项目上删除动画
我创建了一个带有滑动删除功能的 recyclerView。
我有一个我不想存档的项目。
我想在无法删除的项目上实现滑动,以便用户可以滚动一点,当他滚动时,他看到的是红色背景,表明该项目无法存档,一旦他停止滑动,滑动就会关闭制作动画以存档项目。
通过将此行添加到我的 onDrawChild 方法,我设法减少了项目滚动:
问题是,一旦用户滚动足够多,删除项目的动画仍然会出现,我希望获得与项目滑动一点但随后关闭而不是动画相同的行为。
我还尝试覆盖 getMovementFlags:
它禁用滚动的问题。