0

2 つの相対的なレイアウトを持つアクティビティがあります。そのうちの 1 つには 3 つのボタンがあり、幅は 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.

View.INVISIBLEPS私はこのコードをテストしていないので、との違いを知って、View.GONEどちらが適切な選択であるかを判断してください。

于 2013-11-14T08:35:51.910 に答える