我需要实现以下场景:
这里有两个HorizontalScrollViews,上面的scrollView是主菜单,下面的scrollView是子菜单。
当我滚动主菜单时,中心箭头下方的菜单将在下面的滚动视图中显示其子菜单,并且从下面的滚动视图中,中心箭头下方的子菜单将显示该子菜单的屏幕。
这是我的要求:
我已经使用了HorizontalScrollViews和ViewFlipper来实现它,也可以工作,但只有在我缓慢滚动时才会给出正确的结果,而快速滚动时则不会。我使用了onTouch()方法和ACTION_UP事件,因此当我从屏幕释放手指时,它将在该点处给我getScrollX()位置,但是在这里,我需要getScrollX()位置,当滚动完成/停止时。
这是我的代码:
这里有两个HorizontalScrollViews,上面的scrollView是主菜单,下面的scrollView是子菜单。
当我滚动主菜单时,中心箭头下方的菜单将在下面的滚动视图中显示其子菜单,并且从下面的滚动视图中,中心箭头下方的子菜单将显示该子菜单的屏幕。
这是我的要求:
![enter image description here](https://istack.dev59.com/IHgIB.webp)
这是我的代码:
@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;
}