dispatchTouchEvent で試すことができます (チェックするビューの x、y 座標を取得できることを願っています)。
手順 :
- ビューを含むビューを containerView にします。
- ビューの ontouchlistener を設定します。
- 画面が変わったとき、またはビューが表示されているかどうかを確認する必要があるときに、ビューの座標を含む MotionEvent を使用して dispatchTouchEvent 呼び出しを開始します。
- ビューがその座標領域にある場合、ビューのタッチ イベントが呼び出されます。
例えば :
containerView = LayoutInflater.from(this).inflate(
R.layout.activity_main, null);
setContentView(containerView);
yourView = containerView.findViewById(R.id.yourView);
yourView .setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Toast.makeText(MainActivity.this, "View visible",
Toast.LENGTH_SHORT).show();
return false;
}
});
確認する必要がある場合は、次のコードを実行します。
public void doCheck() {
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 100f; //yourView x coordinate
float y = 100f; //yourView y coordinate
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(downTime, eventTime,
MotionEvent.ACTION_DOWN, x, y, metaState);
containerView.dispatchTouchEvent(motionEvent);
}
これが役立つことを願っています。