【问题标题】:Drag View from Activity and drop it in new Fragment android将 View 从 Activity 拖放到新的 Fragment android 中
【发布时间】:2013-06-07 18:00:59
【问题描述】:

我尝试在我的应用程序中实现拖放,我从我的 Activity 中拖动视图,我想将它拖放到在拖动开始时创建的新片段中,但不使用片段中的拖动侦听器,我在我的活动中使用下一个代码:

    findViewById(R.id.button1).setOnLongClickListener(new OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {
            vibra();
            ClipData data = ClipData.newPlainText("", "");
            DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
            view.startDrag(data, shadowBuilder, view, 0);

            FragmentShare share = new FragmentShare(getSupportFragmentManager());
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.add(R.id.principal, share);
            ft.addToBackStack(null);
            ft.commit();

            return false;
            }
        });

我的片段中的代码是下一个:

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View vv = inflater.inflate(R.layout.fragment_share, container, false);

    vv.findViewById(R.id.button1).setOnDragListener(new OnDragListener() {
        @Override
        public boolean onDrag(View v, DragEvent event) {
            int action = event.getAction();
            switch (action) {
                case DragEvent.ACTION_DRAG_STARTED:
                    break;
                case DragEvent.ACTION_DRAG_ENTERED:
                    v.setEnabled(false);
                    break;
                case DragEvent.ACTION_DRAG_EXITED:
                    v.setEnabled(true);
                    break;
                case DragEvent.ACTION_DROP:
                    manager.popBackStackImmediate();
                    break;
                case DragEvent.ACTION_DRAG_ENDED:
                    manager.popBackStackImmediate();
                    break;
                default:
                    break;
            }
            return true;
        }
    });

    return vv;
}

但视图状态永远不会改变,并且在删除视图时不会返回。 我不知道这是否可能,或者有其他方法可以实现,请告诉我这是什么。

谢谢。

钯。对不起我的英语。

【问题讨论】:

    标签: android drag-and-drop android-fragments


    【解决方案1】:

    如果您的应用程序的最小 sdk 版本是 11,那么这可以工作,

    我们有用于 X、Y 坐标、视图宽度和高度的 getter 和 setter。 使用这些方法,我们可以在整个屏幕上移动视图。

    所以,为了完成你的任务,我要做的是,

    1) 我开始在视图的 onTouchListener 中更新视图的 x 位置。 2)我一开始,同时我创建一个片段。 3)当我的视图到达片段时,我将完成()活动并向片段添加相同的布局。

    这样我们就可以说明了。

    希望这会有所帮助..

    【讨论】:

    • 谢谢,但我决定实现我的自定义拖放,我完成了,但在 Android 2.2 上工作。
    猜你喜欢
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多