#codenameone
#codenameone
Вопрос:
У меня есть экземпляр MapContainer, который не отвечает на подключенные прослушиватели PointerRelease. Я пытаюсь определить, когда карта перестала двигаться после ее перетаскивания пользователем. В приведенном ниже коде первые два прослушивателя не выдают никаких выходных данных. Третий / четвертый делают.
MapContainer mc = new MapContainer("mykey");
mc.addPointerPressedListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
System.out.println("Don't see this");
}
});
mc.addPointerReleasedListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
System.out.println("Don't see this either");
}
});
mc.addTapListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
System.out.println("See This :-)");
}
});
mc.addMapListener(new MapListener() {
@Override
public void mapPositionUpdated(Component source, int zoom, Coord centerCoord) {
System.out.println("See this too!");
}
});
Ответ №1:
addTapListener
является правильным и реализованным в MapContainer
. События указателя низкого уровня не будут работать должным образом для этого контейнера, потому что логика отображения реализована изначально, и, следовательно, эти события используются.
Возможно, вы сможете отслеживать их, привязав прослушиватель к родительской форме, но это проблематично, поскольку события / жесты могут иметь интерпретации, зависящие от платформы.