微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当用户从上到下滑动android studio时拖动片段以关闭

如何解决当用户从上到下滑动android studio时拖动片段以关闭

我有 viewPager 的片段。

我希望当用户开始从上到下滑动片段时开始调整大小,当用户移开手指以关闭该片段时。

我已经检测到从上到下滑动的触摸监听器,这里是触摸监听器:

 private View.OnTouchListener onTouchListener = new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v,MotionEvent event) {
        MLog.d(TAG,"onTouch mBottomSheetBehavior.getState()  " + mBottomSheetBehavior.getState());
        if (mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_DRAGGING || mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED) {
            return false;
        }
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                firstTouchPosition = event.getX();
                presstime = System.currentTimeMillis();
                downX = event.getX();
                downY = event.getY();
                return true;
            case MotionEvent.ACTION_UP:
                float finalTouchPosition = event.getX();
                onTap(finalTouchPosition);
                return true;
            case MotionEvent.ACTION_MOVE:
                moveY = event.getY();
                moveX = event.getX();
                float deltaY = downY - moveY;
                float deltaX = downX - moveX;
                if (Math.abs(deltaX) > MIN_disTANCE) {
                    if (deltaX < 0) {
                        MLog.d(TAG,"onTouchxx: ACTION_MOVE RIGHT");
                        return true;
                    } else if (deltaX > 0) {
                        MLog.d(TAG,"onTouchxx: ACTION_MOVE LEFT");
                        return true;
                    }
                }
                MLog.d(TAG,"onTouchxx: deltaY " + deltaY);
                if(Math.abs(deltaY) > 20){
                    if (deltaY < 0) {
                        MLog.d(TAG,"onTouchxx: ACTION_MOVE bottom");
                        // Todo here I need to start to drag the framgnet .
                        return true;
                    }
                    if (deltaY > 0) {
                        MLog.d(TAG,"onTouchxx: ACTION_MOVE UP");
                    }
                }

                return false;
        }

        MLog.d(TAG,"onTouch: others ");
        return false;
    }
};

我一直在搜索,我发现了拖动面板,但这已被弃用,并不是我想要的。

在 Snapchat 故事预览中我想要的有类似的行为。

here in snap chat is fragment is being dragged by the user

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。