如何解决当用户从上到下滑动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 举报,一经查实,本站将立刻删除。