Я пытаюсь получить координаты касания из представления, содержащего PDF.Представление pdf создается с использованием библиотеки PDFViewer, и если я пытаюсь переопределить функцию onTouch для этого представления, я не могу с ней взаимодействовать.Мое решение состояло в том, чтобы текстовое представление действовало как наложение и получало от него координаты, но если я верну True, чтобы получить также ACTION_MOVE и ACTION_UP, сенсорное событие будет использовано, и взаимодействие с представлением PDF не будет выполнено.Если я возвращаю False, я могу взаимодействовать с PDF, но только ACTION_DOWN регистрируется.
Это мой код:
pdfView = findViewById(R.id.pdfView);
pdfView.fromAsset("Hamster_racing.pdf").load();
final View overlay = findViewById(R.id.overlay);
overlay.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
tX = event.getX();
tY = event.getY();
tZ = event.getPressure();
Date curTime = Calendar.getInstance().getTime();
if(event.getAction() == event.ACTION_DOWN){
String logstr = curTime + "ID:"+ ID +","+"Action_down, " +"X:"+ String.valueOf(tX) + ", Y:" + String.valueOf(tY) + ", Pressure:" + String.valueOf(tZ);
Log.i("inputLog", logstr);
toastThis(logstr);
}
if(event.getAction() == event.ACTION_MOVE){
String logstr = curTime + "ID:"+ ID +","+"Action_move, " +"X:"+ String.valueOf(tX) + ", Y:" + String.valueOf(tY) + ", Pressure:" + String.valueOf(tZ);
Log.i("inputLog", logstr);
toastThis(logstr);
}
if(event.getAction() == event.ACTION_UP){
String logstr = curTime + "ID:"+ ID +","+"Action_up, " +"X:"+ String.valueOf(tX) + ", Y:" + String.valueOf(tY) + ", Pressure:" + String.valueOf(tZ);
Log.i("inputLog", logstr);
toastThis(logstr);
}
MotionEvent eventToPass = event;
return true;
}
});
}
Есть ли способ передать MotionEvent в другое представление безпотреблять его, а также получать все события ACTION?