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