- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在尝试使用 ItemTouchHelper 将拖放功能实现到我的笔记应用程序中,但是我正在努力弄清楚如何让它与光标一起工作。我目前正在使用游标加载器和内容提供程序从数据库中检索存储的笔记数据,适配器从返回的游标接收数据,如图所示。
public void onBindViewHolder(RecyclerViewAdapter.MyViewHolder holder, int position) {
mCursor.moveToPosition(position);
String title = mCursor.getString(mCursor.getColumnIndex(NotesContract.COL_TITLE));
String body = mCursor.getString(mCursor.getColumnIndex(NotesContract.COL_BODY));
holder.titleText.setText(title);
holder.bodyText.setText(body);
}
我遇到的问题是,当我拖放它们时,我不知道如何跟踪列表中移动项目的位置。我无法更改游标中行的顺序。我只看到适配器的数据源是列表的示例。我考虑过将我的光标数据复制到 Note 对象列表中,以便我可以重新排列它们以反射(reflect)通过拖放所做的更改,但这似乎使您通过使用光标和光标加载器获得的所有 yield 都落空了。此外,当游标加载器完成加载时,它将再次返回一个包含所有结果的新游标,并相应地填充适配器,因此如果我的新列表丢失,对顺序所做的任何更改都会丢失。
有谁知道该怎么做,还是我使用游标和加载器的方式完全错误?任何帮助将非常感激。谢谢!
最佳答案
我通过在表中添加一个名为 sort_order 的列来跟踪排序顺序来完成此操作。当您拖放时,您会在 ItemTouchHelper.SimpleCallback 的 onMove 方法中更新 sort_order。
关于android - 如何使用 ItemTouchHelper 和光标实现拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38751330/
我已经成功地实现了滑动行为并用它执行了一些操作。我现在遇到的问题是我想在滑动项目时限制滑动宽度。 目前是这样的 但我想将滑动行为宽度限制到这里 这是我到目前为止所做的:- private void s
我无法理解当我刷卡项目时调用 ItemTouchHelper 的哪个回调方法,但我没有完成刷卡而是将其转回正常状态。 我目前拥有的: @Override public void onSwi
我有这个 RecyclerView,它有一个 viewholder,它有一个 title/TextView 和一个 ViewPager。 RecyclerView 中的项目可以用 ItemTouchH
我正在使用 ItemTouchHelper 和 ItemTouchHelper.SimpleCallback 来允许用户重新排序垂直列表 Recycler View。 拖放有效,但在第一条跳线之后强制
我需要根据滑动方向更改行项目的背景颜色,如果向右滑动则将颜色更改为绿色,如果向左滑动则将颜色更改为红色。 但我发现很难获得滑动的方向。 这是我的代码。 public class SimpleItemT
我正在尝试将 RecyclerView 与 ItemTouchHelper 一起用于基本的“拖放”和“滑动关闭”实现。滑动工作正常,项目在适配器中正确删除,动画正确,但“拖放”行为非常奇怪。长按后 V
所以我在 recyclerview rv 上实现了这个 itemtouchhelper.simple 回调。 现在在这个 rv 中,我根据内容类型将 2 种布局设置为一行。 所以当我在 rv 上设置这
我有一个使用 recyclerview 来显示数据库项目的应用程序。我想通过使用 itemtouchhelper 拖动来重新排列项目。我想出了如何做到这一点,但我不知道如何更新我的房间数据库。 Ite
我正在尝试为列表中的每个项目实现一个具有不同 ItemTouchHelper 的 Recycleview。 我知道的唯一方法是将 ItemTouchHelper 直接添加到 RecycleView 而
使用 itemTouchHelper onMove 方法时。如何根据列表中的位置使用编号列表。 例如,项目1,项目2,项目3等都是基于项目在列表中的实际位置。如何通过向上或向下拖动来移动项目。更新列表
我正在使用 android studios ItemTouchHelper.SimpleCallback 来刷项目,我希望项目在长时间保持时被刷,有没有办法以编程方式刷项目?我怎样才能实现这个功能?
使用 ItemTouchHelper 从适配器中删除项目时遇到问题。当通过 updateItemRemoved() 滑动并删除第一个项目时,无法滑动任何其他项目。看起来在第一次移除任何项目后,“忽略”
当我们从末端滑动时,我可以显示红色背景和删除图标。我正在尝试实现部分滑动功能,在部分滑动时,滑动在删除图标之前停止。我尝试关注这些 solutions .但是,它对我不起作用。请指出我正确的方向。 p
我需要在开始时滑动一个项目,或者完全滑动,或者在当前点停止。就像在 Yandex 邮件中一样。我本来想做 setLeft(dx) 和 setRight(dx) 但这不是我需要的 我有课 ItemTou
我创建了一个类来处理滑动事件: public class CardViewSwipeListener : ItemTouchHelper.Callback { private Context c
我正在尝试在回收站 View 中实现滑动删除。我有这个代码。 public abstract class SwipeToDeleteCallback extends ItemTouchHelper.C
我已经实现了滑动以关闭到我的回收站 View 中。它触发 2 个功能(记录的编辑和删除)。如果向左滑动,则编辑它,如果向右滑动,则删除它。我在recyclerview项目的一般部分下有这样的布局
我使用带有 ItemTouchHelper 的 RecyclerView 进行滑动删除,并在滑动项下添加删除按钮,如下所示: 但是当我刷完后,该项目很快就会从列表中删除!如何锁定滑动的项目,并通过单击
当用户停止在我的 RecyclerView 上拖放时(当他放下所选项目时),我需要倾听用户的声音。 我可以通过我的 ItemTouchHelper 获得这些信息吗? 感谢帮助 马克:目前我只是在用户仍
我有一个滑动删除,它绘制背景(很像收件箱应用程序),由 ItemTouchHelper 实现 - 通过覆盖 onChilDraw 方法并在提供的 Canvas 上绘制一个矩形: ItemTou
我是一名优秀的程序员,十分优秀!