向左或向右滑动以切换选项卡选择。

5

我有一个应用程序,它是一个带有多个选项卡的Tab活动,每个选项卡加载一个Activity。我想添加滑动手势以在选项卡控件本身和每个选项卡中加载的活动之间切换。这种操作是否可能?我不确定在进行托管在选项卡控件中的活动上手势监听的“深度”或者内部活动是否需要向选项卡主机传递数据。

2个回答

3
当然可以实现;您需要编写自定义布局并重写 onTouchEventonInterceptTouchEvent,以决定是否将手势传递给子视图。请参阅 HorizontalPager 的源代码,了解如何实现此功能的详细信息。实际上,您可能只想直接使用 HorizontalPager(它有一个模拟选项卡的演示),因为滚动内容使得可以轻松地在选项卡之间滑动。

2
您可以使用手势检测器。据我所知,它会“全局”监听手势。为了将其限制在选项卡中,您可以检查手势是否发生在选项卡的边界内。

GestureDetector

使用提供的MotionEvents检测各种手势和事件。当特定的运动事件发生时,GestureDetector.OnGestureListener回调将通知用户。该类仅应与通过触摸报告的MotionEvents一起使用(不要用于轨迹球事件)。要使用此类:

  • 为您的视图创建GestureDetector的实例,在nTouchEvent(MotionEvent)方法中确保调用onTouchEvent(MotionEvent)。当事件发生时,将执行回调中定义的方法。

来源:http://developer.android.com/reference/android/view/GestureDetector.html

滑动手势

本页展示如何使用GestureDetector识别滑动手势:http://smartandroidians.blogspot.com/2010/04/swipe-action-and-viewflipper-in-android.html

这是关于GestureDetector的有用信息,但我仍然不确定如何使手势检测流经托管在选项卡中的活动。手势检测器仅在选项卡中未被活动占用的空间中起作用。 - Stealth Rabbi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接