Работа с событием onTouchListener.

Ответить
sandysman
Сообщения: 11
Зарегистрирован: 25 фев 2015, 13:56

Работа с событием onTouchListener.

Сообщение sandysman » 26 апр 2015, 16:35

Всем доброго времени суток, не могу догадаться как реализовать метод onTouche. Имеется объект ScreenPager унаследованный от объекта ViewPager, прокрутка работает прекрасно, но имеется ряд TextView по горизонтали, которые отображают количество картинок, и окрашены в серый цвет, текущую картинку textview отображает окрашивая себя в белый цвет. Для окраса textView я задаю событие onTouchListener объекту ScreenPager

Код: Выделить всё

	View.OnTouchListener touchListenerRelativeHelper = new View.OnTouchListener(){

		@Override
		public boolean onTouch(View v, MotionEvent event) {
			if (event.getAction() == MotionEvent.ACTION_DOWN){
				x1 = event.getX();
				y1 = event.getY();
			}else if (event.getAction() == MotionEvent.ACTION_UP){
				x2 = event.getX();
				y2 = event.getY();

				if (x1 < x2 | x1 > x2 | y1 < y2 | y1 > y2){
					int current =  screenPagerHelper.getCurrentItem();
					for (int i = 0; i < pageTextView.length; i++){
						pageTextView[i].setTextColor(android.graphics.Color.GRAY);
					}
					pageTextView[current].setTextColor(getResources().getColor(R.color.white));
				}
			}
			return false;
		}
	};
в итоге у меня происходит отставание в окрасе textView, т.е. если вторая картинка то первый textView белый, если третья картинка то второй и т.д. Пытался повесить это событие на родителя ScreenPager, relativeLayout, но оно не срабатывает, не знаю как сделать так чтобы сначала отработал ScreenPager а потом сработало событие предка. Если в OnTouch возвратить true то ScreenPager не работает, событие перекрывается. Может кто-нибудь подскажет как можно реализовать?

Ответить