0

我有两个相对布局的活动。在其中一个中,我有三个按钮,它的宽度设置为 wrap_content。当用户单击此布局之外的任何区域时,我希望能够隐藏此布局。

我怎样才能做到这一点

4

1 回答 1

3

在活动中使用 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.INVISIBLEView.GONE这样你就可以确定哪一个是适合你的选择。

于 2013-11-14T08:35:51.910 回答