Java 将RelativeLayout移出屏幕(使用onTouch)

Java 将RelativeLayout移出屏幕(使用onTouch),java,android,Java,Android,我有一个相对位置,我希望用户通过触摸来移动它。我希望RelativeLayout移出屏幕(不是调整它的大小,而是隐藏它)。然后我尝试了以下代码: // onTouch method: boolean hasMoved = false; ViewConfiguration vc = ViewConfiguration.get(context); int slop = vc.getScaledTouchSlop(); float touch, move, delta; if (event.getAc

我有一个相对位置,我希望用户通过触摸来移动它。我希望RelativeLayout移出屏幕(不是调整它的大小,而是隐藏它)。然后我尝试了以下代码:

// onTouch method:
boolean hasMoved = false;
ViewConfiguration vc = ViewConfiguration.get(context);
int slop = vc.getScaledTouchSlop();
float touch, move, delta;
if (event.getAction() == MotionEvent.ACTION_DOWN) {

    touch = event.getX();
    return true;
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {

    move = event.getX();
    delta = touch - move;
    if(Math.abs(delta) > slop) hasMoved = true;
    if (hasMoved) {

        int lMargin = (int) ((touch - move) * (-1));
        LayoutParams lp = (LayoutParams) relativeLayout.getLayoutParams();
                ((MarginLayoutParams) lp).leftMargin = lMargin;
                relativeLayout.setLayoutParams(lp);
    }
}
但它不能正常工作。relativeLayout闪烁(边距到达指定位置,然后在用户移动时多次返回到原始位置)

对不起,我的英语不好。如果你愿意,我可以试着更好地解释,或者用另一种方式


谢谢

我不确定我是否完全理解您试图正确执行的操作,但要隐藏视图,您可以执行类似的操作

relativeLayout.SetVisibility(View.GONE)


抱歉,这是为了部分隐藏,而不是整个视图。因此,我必须将左边距设置为负值。它可以工作,但视图会闪烁。
relativeLayout.SetVisibility(View.INVISIBLE)