相关疑难解决方法(0)

Android拖放ACTION_DRAG_ENDED未触发

我真的有时间搞清楚这个,到目前为止找不到任何有相关经验的朋友.在我发布我的第一个应用程序之前,这是我非常最后的功能,所以它让我疯狂,因为它已经陷入困境,最终即将结束!

如果我将物体放在可接受的区域,我的拖放效果会很好.但是,如果丢弃在其他地方我没有得到事件,并且在失败的拖放操作后无法清理.我需要触发ACTION_DRAG_ENDED事件.但是,如果我使用值为true的ACTION_DRAG_STARTED响应(意味着它可以接受该对象),则仅触发(根据文档).问题是ACTION_DRAG_STARTED没有解雇!

所以我认为问题的关键在于我没有得到ACTION_DRAG_STARTED.我在这里放置了所有相关的拖拽代码(或至少几乎全部):

private OnTouchListener onTouchListener = new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            Item current = (Item) ((View) v.getTag()).getTag();
            //ClipData data = ClipData.newPlainText("test", "testText");
            View dragView = (View) v.getTag();
            DragShadowBuilder shadowBuilder = new ItemDragShadowBuilder(dragView, 
                                new Point(v.getWidth()/2, v.getHeight()/2));
            dragSource = dragView;
            v.startDrag(null, shadowBuilder, current, 0);
            dragView.setVisibility(View.INVISIBLE);
            return true;
        } else {
            return false;
        }       
    }

};

private static class ItemDragShadowBuilder extends View.DragShadowBuilder {

    private Point touchPoint = null;
    private Point sizePoint …
Run Code Online (Sandbox Code Playgroud)

android drag-and-drop

17
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

drag-and-drop ×1