我有一个RelativeLayout,我希望用户通过触摸来移动它。我希望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会闪烁(边距到达disired位置,然后在用户移动时多次返回到原来的位置)。
对不起我的英语不好。如果你愿意,我可以试着解释得更好,或者用另一种方式解释。
谢谢!
发布于 2013-08-30 12:13:13
我不知道你到底想做什么,但是为了隐藏一个视图,你可以这样做。
relativeLayout.SetVisibility(View.GONE)或
relativeLayout.SetVisibility(View.INVISIBLE)https://stackoverflow.com/questions/18532471
复制相似问题