触发ACTION_DRAG_ENDED时无法使ImageView可见

时间:2014-05-11 01:06:55

标签: android gridview drag-and-drop visibility

我有一个ImageView和一个GridView。当我开始拖动图像时,我将其隐藏(GONE):

imageView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {

                ClipData.Item item = new ClipData.Item((CharSequence) view.getTag());
                String[] mimeTypes = {ClipDescription.MIMETYPE_TEXT_PLAIN};
                ClipData dragData = new ClipData(view.getTag().toString(), mimeTypes, item);

                View.DragShadowBuilder myShadow = new View.DragShadowBuilder(imageView);

                view.startDrag(dragData, myShadow, piece, 0);
                imageView.setVisibility(View.GONE);

                return false;
            }
        });

现在我删除的视图与GridView上的一个视图匹配。如果我把它放在它上面,我不需要任何事情发生,如果我把它放在任何其他视图上我再次使它可见并且工作正常(所有这些都发生在GridView适配器中)。

但是,如果它根本不放在GridView上,我也想让它可见(例如,它被放在GridView和原始View之间的空白区域)。 我试过这个:

imageView.setOnDragListener(new View.OnDragListener() {
            @Override
            public boolean onDrag(View view, DragEvent dragEvent) {
                int action = dragEvent.getAction();
                switch (action) {
                    case DragEvent.ACTION_DRAG_ENDED:
                            Log.d("test", "visible");
                            imageView.setVisibility(View.VISIBLE);
                        break;
                }
                return true;
            }
        });

我看到了日志消息,因此触发了ACTION_DRAG_ENDED,但imageView的可见性不会改变。任何人的想法?

0 个答案:

没有答案