我正在写启动器。
它具有一个GridView,其中包含应用程序和应用程序文件夹。
我希望能够重新排序GridView ...这是很容易的部分,因为我在下面查看的库提供了重新排序:
https://github.com/askerov/DynamicGrid
https://github.com/mrKlar/PagedDragDropGrid
但是,我还希望能够将要拖动的项目添加到文件夹中,与Google Now Launcher的工作方式完全相同。其机制是,长按一个应用程序以开始拖放后,如果将鼠标悬停在另一个项目上,则允许您将其添加到文件夹(如果是文件夹)或创建文件夹(如果是应用程序)。如果将鼠标悬停在项目边缘附近,它将重新排序,而不是将其添加到项目中。
我不想从头开始编写此文件,但是一直找不到通过重新排序和添加来拖放GridViews(或ListViews)的任何示例。
有没有人有一个lib,一些示例代码,或者一个大概的想法?
幸运的是,我也正在编写启动器!
您可以为所有图标做的是 setOnDragListener(new Yourclass())
在中Yourclass
,您可以执行以下操作:
class Yourclass implements View.OnDragListener{
@Override
public boolean onDrag(View v, DragEvent event) {
final int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
// do nothing
break;
case DragEvent.ACTION_DRAG_ENTERED:
//Code for folder
case DragEvent.ACTION_DROP:
if (event.getAction()==DragEvent.ACTION_DROP) {
//save folder?
}
return true;
case DragEvent.ACTION_DRAG_ENDED:
//do nothing
default:
break;
}
return true;
}
}
确保Yourclass
与longclicklistener位于同一文件中
但是,我自己编写了所有启动器代码,因此这可能不适用于您的库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句