2 つの相対的なレイアウトを持つアクティビティがあります。そのうちの 1 つには 3 つのボタンがあり、幅は wrap_content に設定されています。ユーザーがこのレイアウトの外側にある領域をクリックすると、このレイアウトを非表示にすることができます。
これどうやってするの
2 つの相対的なレイアウトを持つアクティビティがあります。そのうちの 1 つには 3 つのボタンがあり、幅は 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.
View.INVISIBLE
PS私はこのコードをテストしていないので、との違いを知って、View.GONE
どちらが適切な選択であるかを判断してください。