簡體   English   中英

Android停止從視圖的中心點拖出屏幕

[英]Android stop drag out of screen from center point of View

該圖顯示了預期的結果

有沒有一種方法可以使用onTouch move事件阻止視圖的中心點拖離屏幕?

我可以檢測到該點,但是我需要邏輯來停止視圖移動,然后在用戶向后滑動時重新加入拖動。 設置布爾值將禁用移動事件,這是不好的,並且將視圖設置回已知的好點是不可靠的。

對此沒有任何答案,所以我想知道是否有可能...

您可以使用它來使視圖限於屏幕邊界。

int width=v.getLayoutParams().width;;
    int height=v.getLayoutParams().height;
    switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:

            dX = v.getX() - event.getRawX();
            dY = v.getY() - event.getRawY();

            return true;

        case MotionEvent.ACTION_MOVE:

            if (width == windowWidth && height == windowHeight){}
            else {
                v.animate()
                        .x(event.getRawX() + dX)
                        .y(event.getRawY() + dY)
                        .setDuration(0)
                        .start();

                if (event.getRawX() + dX + width > windowWidth) {
                    v.animate()
                            .x(windowWidth - width)
                            .setDuration(0)
                            .start();
                }
                if (event.getRawX() + dX < 0) {
                    v.animate()
                            .x(0)
                            .setDuration(0)
                            .start();
                }
                if (event.getRawY() + dY + height > windowHeight) {
                    v.animate()
                            .y(windowHeight - height)
                            .setDuration(0)
                            .start();
                }
                if (event.getRawY() + dY < 0) {
                    v.animate()
                            .y(0)
                            .setDuration(0)
                            .start();
                }

                return true;
            }

其中v是onTouchListener中的視圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM