问题标签 [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.

0 投票
0 回答
504 浏览

android - 用于 ExpandableListview 的 ItemTouchHelper

我一直在研究可扩展列表视图。它的工作正常,有很多调整。我很高兴使用它,到目前为止它的工作方式非常有魅力。

但是现在我有了新的要求,用户可以执行几件事。就是这样。

  • 用户可以将项目从一组拖放到另一组(排序)
  • 用户可以上下拖放整个组(排序)
  • 用户可以向左/向右滑动项目以删除/移动(移动/删除)
  • 用户可以向左/向右滑动整个组以删除/移动。(移动/删除)

对于这些,我必须实现触摸监听器。我成功地向左/向右滑动。但我无法使用可扩展列表视图进行拖放。

我看过这个链接。它的ItemTouchHelper类并且与 recyclerview 配合得很好。但我不喜欢如何使用它 listview。特别是 ExpandableListview。

所以简而言之,我可以像这样总结我的问题?

  1. 如何在可展开的 listvie 上执行拖放和向左/向右滑动?
  2. 如何使用上面提到的 ItemTouchHelper 类?
  3. 以组标题形式显示项目的其他方式是什么。(我可以考虑分解它,我的意思是我可以说首先我可以显示标题列表,然后通过单击一个标题我可以打开另一个包含其子项的活动。这样我可以使用 recyclerview 并且可以轻松执行所有拖放和滑动。但在这个分解中,我不能将一个项目从一组中滑动到另一组

请建议我更好的方法。并帮助我。这将不胜感激。

0 投票
1 回答
280 浏览

java - 我在适配器中滑动以关闭,但无法在 Firebase 中删除

不刷项目,我用这个方法删除:

但是我想使用滑动来删除,并且我有 swipehelper 类来从适配器中关闭项目。当我加载活动时,RecyclerWiew 中会显示关闭项目

我尝试在 onSwiped 方法中编写我的 deleteItem 方法,但我无法获取要删除的项目数据库 ID。

0 投票
1 回答
6415 浏览

android - Android ItemTouchHelper.SimpleCallback 获取滑动方向

我已经实施了滑动以关闭我的回收站视图。它触发2个功能(记录的编辑和删除)。如果向左滑动,则编辑它,如果向右滑动,则将其删除。我在 recyclerview 项目的一般部分下有这样的布局

因此,如果您向左滑动(删除项目),左侧图标(用于编辑)应该隐藏到滑动结束。但是,我不知道如何在 ItemTouchHelper.SimpleCallback 类中获取滑动方向。请帮忙。

RecyclerItemTouchHelper.java

}

更新:我已经解决了这个问题,只是更新了 onChildDraw 方法:

0 投票
1 回答
568 浏览

android - 关闭项目后recyclerview项目之间的差距

我正在尝试使用 recyclerview 尝试学习如何允许滑动关闭视图中的项目。每当我关闭一个项目时,该项目过去占用的空间仍然存在,并且有一个空白空间。这些项目不会向上移动以填充空白空间。

空地截图

有什么我想念的吗?(我正在使用 Xamarin,但我认为该解决方案实际上与我使用 java 相同)

这是带有 eh ItemTouchHelperAdapter 的 Recyclerview 适配器

这是回调

我用于项目触摸助手的 Xamarin 库是这个

非常感谢!

0 投票
1 回答
1038 浏览

android - ItemtouchHelper 导致索引超出范围异常

我有一个私人 ItemTouchHelper 从房间数据库中删除一行,但是目前当我滑动删除时它会导致 ArrayIndexOutOfBounds 异常:

我已经发布了一个类似的问题,但是现在我已经提炼出问题的根源是 itemTouchHelper。

itemtouch 助手附加到一个 RecycleViewAdapter,它从房间数据库中获取它的数据集。

数据集显示为列表,我正在使用 itemTouchHelper 的 viewHolder.getAdapterPosition删除 RecycleAdapter 中已刷过的位置处的项目。这会引起我的问​​题吗?

我附上了相关代码:

mainActivity.java 中的数据库处理代码

回收视图适配器

带有 itemTouchHelper 的片段

我从调试中注意到,一个项目需要 2 次滑动才能从 RecycleAdapter 的视图中完全消失,有时它不会删除我正在滑动的内容

0 投票
1 回答
384 浏览

java - 根据滑动方向更改视图颜色

我正在尝试使用 ItemTouchHelper 的 onChildDraw() 方法根据滑动 getsure 的方向更改视图的颜色,但它不起作用:

问题是,虽然某些视图具有我正在尝试设计的属性,但其他视图没有,它们保持相同的颜色并且文本视图保持可见。

我没有在 onChildDrawOver 中实现代码,因为我看不到这样做的理由

0 投票
1 回答
654 浏览

java - ItemTouchHelper 未应用于适配器中的每个视图

在实现滑动删除功能时,我不小心使我的前景视图的视图保持透明。在这样做的过程中,我发现了一个错误,即我的 ItemTouchHandler 没有改变背景或在应该改变的时候隐藏文本。

在我看来,我的 ItemTouchHelper 没有应用于我的 ReycleViewAdapter 中的每个视图和/或视图没有被更新,或者它们都共享某种类型的单一父级,经过数小时的尝试调试后,我无计可施,我已经包含了这个问题的一个方便的 gif。

ItemTouchHelper 的 onDrawChild() 和 onDrawChildOver() 方法被传递给我的片段以处理操作

错误示例

代码

AllLists_fragment.java:

RecycleitemTouchHelper.java

RecycleViewAdapter.java:

0 投票
1 回答
3045 浏览

android - 水平 RecyclerView 居中的项目

我想在其中设置 4 个项目的 Horizo​​ntal RecyclerView。项目应出现在屏幕中央。每个项目都有固定的高度和宽度。我想将所有项目放在中心并使我的 RecyclerView match_parent。我实现的是使用 wrap_content 到 RecyclerView。但是,如果将 match_parent 赋予 recyclerView 所有项目都从左侧而不是中心出现。但我希望所有项目都使用 match_parent recyclerView 在屏幕中央。

这是我正在做的事情:

物品:

爪哇:

使用上面的代码,我的所有项目都出现在屏幕中间,因为我的 recyclerview 位于中心并且具有 wrap_content 属性。

但为什么我需要我的 RecyclerView match_parent?

我通过使用 ItemTouchHelper 类来使用 RecyclerView 的拖放功能。现在,每当我将任何项目拖到 recyclerview 的末尾时,该项目开始从屏幕上消失,或者我们可以说项目直到屏幕宽度才拖动。我希望我的项目拖动直到屏幕宽度,或者只要项目达到 recyclerview 的宽度,它就应该停止拖动。如果我给我的recyclerview匹配父项,那么拖动工作正常,但它显示屏幕左侧的所有项目不在中心,我希望我的所有项目都显示在屏幕中心。

如果有任何可用的解决方案,请告诉我。

谢谢!

因为我正在使用拖放

0 投票
2 回答
868 浏览

java - 使用数据库对 RecyclerView 项目进行排序

我目前正在开发一个具有“最喜欢的歌曲”标签的音乐应用程序。我正在尝试实现一个工具,该工具允许用户使用拖放对存储在数据库中的他们喜欢的歌曲进行排序。

我正在使用ItemTouchHelper这种情况,但是我的搜索都没有产生适用于数据库的解决方案。

** 我的列表是从数据库中填充的 **

收藏夹Presenter.class

数据库类

我在这里尝试过这个“解决方案” ,但显然它对我不起作用。有什么建议么 ?

0 投票
1 回答
1664 浏览

android - 如何在 Recyclerview Android 中以两种颜色滑动删除和滑动存档

现在我有一个功能性的向左滑动以在具有两种布局(前景和背景)的 recyclerview 中删除。我在代码中使用了 itemtouchhelper。但是,我希望向左滑动和向右滑动都显示不同的颜色和图标,就像在 Google 收件箱中一样。我该如何实施?

我想要的是: 向右滑动向左滑动

我所拥有的是: 只向右滑动

该代码只是标准的 itemtouchhelper.simplecallback,在 xml 中有 2 个布局。而且我到处搜索,只发现带有单一图标和单一颜色的单一滑动选项