мне нужно реализовать следующий сценарий,
здесь у меня есть два HorizontalScrollViews, верхний scrollView - это главное меню, а нижний scrollView - это подменю.
когда я прокручиваю главное меню, меню, которое находится под центральной стрелкой, будет отображать свое подменю в нижнем режиме прокрутки, а из нижнего режима прокрутки подменю, которое находится под центральной стрелкой, показывает экран для этого подменю.
вот мое требование:
Я реализовал его с помощью HorizontalScrollViews и ViewFlipper, и он также работает, но дает правильный результат только при медленной прокрутке, а не при быстрой прокрутке.
я использовал метод onTouch() с событием ACTION_UP, поэтому, когда я отпускаю палец с экрана, он дает мне позицию getScrollX() в этот момент, но здесь мне нужна позиция getScrollX(), когда прокрутка завершена/остановлена.
вот мой код: -
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.mHorizontalScrollViewMain:
if (event.getAction() == KeyEvent.ACTION_UP) {
Log.d("test", " " + hsvUpperTab.getScrollX() + " , "+ mViewFlipper.getChildCount());
getUpperTabScrolled(hsvUpperTab.getScrollX());
}
break;
case R.id.mHorizontalScrollViewSub:
if (event.getAction() == KeyEvent.ACTION_UP) {
Log.d("test1", " " + hsvLowerTab.getScrollX());
getLowerTabScrolled(hsvLowerTab.getScrollX());
}
default:
break;
}
return false;
}