2016-06-23 3 views
0

В нашем приложении мы используем Mapbox GL для Android. Мы поставили вопрос о Mapbox Github, чтобы показать нашу проблему с MarkerView.Диспетчер событий касания

enter image description here

Мы не можем ждать решения от MapBox поэтому мы должны найти решение. MarkerView является ImageView на карте:

convertView = inflater.inflate(R.layout.marker_layout, parent, false); 
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.marker_image); 

Мы попытались установить сенсорную слушателя на изображение и вызвать mapview.onTouchListener (motionEvent) как here, но у нас есть конфликт между событием OnClick и действия ACTION_MOVE.

Мы хотим, чтобы вы не могли щелкнуть маркер или прокрутить/увеличить масштаб карты. В настоящее время, если мы попытались прокрутить, вызывается событие click, и прокрутка работает неправильно.

ответ

0

Вы можете направить сенсорное событие с другой точкой зрения вызывающего dispatchTouchEvent на цели View:

viewHolder.imageView.setOnTouchListener(new View.OnTouchListener() { 
    @Override 
    public boolean onTouch(final View view, final MotionEvent motionEvent) { 
     // Manage the touch event for the ImageView 

     boolean managed = mapView.dispatchTouchEvent(motionEvent); 
     return true; 
    } 
}); 

Примите во внимание, что вам может понадобиться для управления ли целевой View (вашего MAPview) потреблял событие.

+0

Я получаю StackOverflowError, когда пытаюсь использовать событие отправки. MapView - это класс MapBoxGL, я не могу его изменить. – BerHug

+0

Кажется, что представление карты отправляет события дочерним представлениям, а изображение также отправляет события в представление карты с моим решением. Я сохраняю свой ответ, поскольку считаю, что он может указывать на хороший ответ от других людей – antonio

Смежные вопросы