我有一个看起来像这样的布局:
ViewPager 内部有许多 Fragment,每个 Fragment 都包含一个 ListView。
现在我想这样做:
通过向下滚动,ListView 不能滚动。相反,标题必须进行转换,使其看起来像一个原生 ActionBar。
我通过在我的活动的根布局中拦截 TouchEvent 来做到这一点。我已经覆盖了我的父布局的 onInterceptTouchEvent() 方法,并通过检索当前可见的 ListView 并检查 firstVisibleItem 是否是第一个并且它是否完全可见来检查是否应该拦截 TouchEvent。如果 TouchEvent 应该被拦截,则调用我自定义的 OnGesutreListener 的 onScroll() 方法。所以“动画”进度取决于滚动偏移量。
所有这些都很好。但现在这是我的问题:
转换已准备就绪,用户仍向下滚动。作为用户,我希望 ListView 向下滚动。但是 TouchEvent 没有被分派到 ListView,因为它仍然被父布局拦截。只有在再次上下移动手指后才会再次调用 onInterceptTouchEvent (现在父布局还没有拦截)并且列表是可滚动的。
我尝试了一些东西,但它们对我没有用:
- 我试图在我父母布局的 onTouchEvent() 方法中手动调用我的 listView 的 onTouchEvent - 注意发生
- 我试图在我的 onScroll 方法中手动调用我的 listView 的 onTouchEvent,这也没有成功。
也许你们中的一些人知道如何解决这个问题。
非常感谢和问候!