相关疑难解决方法(0)

如何使用可拖动项目制作ListView?

我正在寻找一个ListPreference,用户可以在其中更改列表中的项目顺序.这些物品可以拖动,并且可以由用户重新订购.

我在我的自定义ROM中看到了这个(我几乎可以肯定我在Cyanogenmod中看到它)用于QuickPanel.这是一个截图,通过以下方式获得创意:

Sabotage ROM的QuickPanel设置中的

我知道如何制作自定义ListView项目并设置图标以指示项目是可拖动的,但我不知道如何使它们可拖动,并相应地更改顺序.至于在偏好中保存它们,我发现可以很容易地实现.

PS:我知道Cyanogenmod是开源的,但我找不到这个特殊事物的来源:(我能得到的最接近的是这个,它应该在另一个屏幕附近...

在此先感谢任何关于此的提示.

更新:我最终使用了接受的答案中的文件,添加和修改.我在这里列出它们以供进一步参考.

  • 使用自定义适配器(在我的情况下为ArrayAdapter)来实现此项可拖动的视觉反馈,这是TextView附近的ImageView.这是可选的.

  • 设置DragListener和RemoveListener以相应地更新列表.ListView不会自动执行此操作.这取决于您使用的适配器.

  • 有一行将View转换为ViewGroup,它产生了一些错误,所以我删除了没有任何问题的转换,不需要它.(在onInterceptTouchEvent方法中).

  • 改变mRemoveMode = 1;TouchInterceptor的构造函数,或者:FLING = 0; SLIDE = 1; TRASH = 2;.我认为TRASH,资源也应该可用.

我实际上不是从答案的链接中获取文件,而是从我已经拥有的Cyanogenmod中获取文件,但我猜这些文件是相同的.

这些是项目中的实际文件(在撰写本文时的r12):

我希望它可以帮助别人:)

android listview

5
推荐指数
1
解决办法
5983
查看次数

标签 统计

android ×1

listview ×1