Android:在网格视图中拖放(Android 4.0+;)
在我的应用程序中,我有一个带有网格视图的屏幕,我在其中以两列显示照片。 我想添加的可能性,以重新排序的照片拖放结束。 我有android 4.0,我使用android本机拖放: 所以,我已经添加了拖放功能,但问题是,当用户试图将顶部图像拖动到底部时,我需要滚动网格视图。使用smoothSctollTo()方法以编程方式滚动gridView不是问题,但当我拖动项目时,我需要检查手指是否位于屏幕底部。问题在于:Android:在网格视图中拖放(Android 4.0+;),android,Android,在我的应用程序中,我有一个带有网格视图的屏幕,我在其中以两列显示照片。 我想添加的可能性,以重新排序的照片拖放结束。 我有android 4.0,我使用android本机拖放: 所以,我已经添加了拖放功能,但问题是,当用户试图将顶部图像拖动到底部时,我需要滚动网格视图。使用smoothSctollTo()方法以编程方式滚动gridView不是问题,但当我拖动项目时,我需要检查手指是否位于屏幕底部。问题在于: @Override public boolean onDrag(fin
@Override
public boolean onDrag(final View v, final DragEvent event) {
Log.v("Coordinates", " " + v.getY());
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
break;
case DragEvent.ACTION_DRAG_ENTERED:
break;
case DragEvent.ACTION_DRAG_EXITED:
break;
case DragEvent.ACTION_DROP:
break;
case DragEvent.ACTION_DRAG_ENDED:
break;
default:
break;
}
return true;
}
};
仅当一个gridview项与另一个项相交时,才会调用所有这些事件。
但当我将项目拖动到干净的gridView空间上时,不会调用on drag。
当我拖动项目时,如何获得手指坐标?根据我对android的了解,我建议您设置一个指向要滚动的视图,这样,如果您已经到达W视图的底部(根据视图位置和高度进行一些计算),您可以开始滚动。您可以实现或,这两种方法都能为您解决此问题 编辑:这是一个直接扩展GridView的新库:
我已经实现了它,希望有一个选项可以自定义gridsize,我可以怎么做?@user2459623我刚刚查看了代码,看起来在绘制视图时,列是自动确定的。我用一个扩展GridView的新库更新了这篇文章,使您可以像普通GridView一样进行自定义。当我们拖动grid时,其他网格会自行改变位置,我希望在不影响其他网格位置的情况下交换任意两个项目。怎样才能做到呢?有什么想法吗??