2015-05-14 12 views
0

Итак, я создал ImageSwitcher, и цель заключается в том, что при прокрутке влево или вправо загружается следующее изображение в массиве. Затем, если вы нажмете на ImageSwitcher, он начнет новое действие, используя отображаемое в данный момент изображение.настройка onClickListener для ImageSwitcher

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу заставить ImageSwitcher распознавать событие click. Я успешно установил жесты swipeRight и swipeLeft, и я пытаюсь установить onClickListener, но когда я нажимаю на ImageSwitcher, ничего не происходит.

Любая помощь была бы принята с благодарностью.

imgSwitcher = (ImageSwitcher) findViewById(R.id.highlights_image_switcher); 

imgSwitcher.setFactory(new ViewSwitcher.ViewFactory() { 
    @Override 
    public View makeView() { 
     ImageView myView = new ImageView(getApplicationContext()); 
      myView.setScaleType(ImageView.ScaleType.FIT_CENTER); 
      myView.setLayoutParams(new ImageSwitcher.LayoutParams(
       ImageSwitcher.LayoutParams.MATCH_PARENT, 
       ImageSwitcher.LayoutParams.MATCH_PARENT)); 
      return myView; 
    } 
}); 

imgSwitcher.setOnTouchListener(new OnSwipeTouchListener(getBaseContext()) { 
    @Override 
    public void onSwipeLeft() { 
     highlightsNext(); 
    } 

    @Override 
    public void onSwipeRight() { 
     highlightsPrevious(); 
    } 
}); 

imgSwitcher.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     highlightsAdvance(highlightIndex); 
    } 
}); 
+0

Вы уверены, что метод 'onClick()' никогда не был достигнут? – GVillani82

+0

Вы вошли в 'OnClickListener' ... как говорит Joseph82, убедитесь, что это щелчок, это проблема, а не метод. –

+0

Да, я установил точку останова, а также распечатал журнал, и ни один из них не был достигнут. – user3863053

ответ

0

Так что для тех, кто задается вопросом, я нашел ответ на свой вопрос. Поскольку я уже реализую onSwipeTouchListener, я также не могу реализовать прослушиватель onClick, потому что они оба сначала прослушивают событие Down. Таким образом, все события вниз идут в onSwipeTouchListener, и по этой причине onClickListener никогда ничего не подбирает. Еще одна заметка: я смог написать код для решения этой проблемы, если кому-то это интересно, просто опубликуйте комментарий по этому вопросу, и я могу его поднять.