是的,我已经找到了类似的问题,以及解决方案。可能只是不符合我的情况(或者我很遗憾可能很容易)
所以,我设法使用这样的Touch
监听器垂直拖动视图:
playableAreaBackground.setOnTouchListener(new View.OnTouchListener() {
float move_orgY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
move_orgY = event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
float offsetY = event.getRawY() - move_orgY;
playableAreaBackground.setY(playableAreaBackground.getY() + offsetY);
move_orgY = event.getRawY();
break;
}
return true;
}
});
playableAreaBackground
是子视图
我想要实现的目标是:
将此视图拖动到其顶部的父级(
break
拖放视图)...同样适用于底部。
我尝试了什么:
if (playableAreaBackground.getTop() >= fadingEdgeLayout.getTop() ||
playableAreaBackground.getBottom() >= fadingEdgeLayout.getBottom())
break;
另外,我尝试使用Rect()
对象,并检查它的界限
!parent.contains(left, top, right, bottom)
但是这会把我的观点抛到父母的界限之外。