我有两个相对布局的活动。在其中一个中,我有三个按钮,它的宽度设置为 wrap_content。当用户单击此布局之外的任何区域时,我希望能够隐藏此布局。
我怎样才能做到这一点
我有两个相对布局的活动。在其中一个中,我有三个按钮,它的宽度设置为 wrap_content。当用户单击此布局之外的任何区域时,我希望能够隐藏此布局。
我怎样才能做到这一点
在活动中使用 OnTouchEvent():
@Override
public boolean onTouchEvent(MotionEvent event) {
float touchPointX = event.getX();
float touchPointY = event.getY();
int[] coordinates = new int[2];
layoutToHide.getLocationOnScreen(coordinates);
if(touchPointX < coordinates[0] || touchPointX > coordinates[0] + layoutToHide.getWidth() || touchPointY < coordinates[1] || touchPointY > coordinates[1] + layoutToHide.getHeight())
layoutToHide.setVisibility(View.INVISIBLE) // or View.GONE if you want more space.
PS我还没有测试过这段代码,一定要知道和之间的区别View.INVISIBLE
,View.GONE
这样你就可以确定哪一个是适合你的选择。