我有一个应用程序是一个选项卡活动,其中包含加载活动的各种选项卡。我想在选项卡控件本身和选项卡中加载的每个活动上添加滑动手势以在选项卡之间切换。这样的事情可能吗?当您在选项卡控件中托管的活动上做出手势时,或者内部活动是否必须将数据传递给选项卡主机时,我不确定该手势的“深度”是什么。
2 回答
这当然是可能的;您需要编写自定义布局并覆盖onTouchEvent和onInterceptTouchEvent来决定是否将手势分派给 children 。有关如何执行此操作的详细信息,请参阅HorizontalPager的源代码。您实际上可能只想直接使用 HorizontalPager(有一个关于使用它模拟选项卡的演示),因为我认为滚动内容使您可以在选项卡之间滑动更加清晰。
您可以使用手势检测器。据我所知,它会“全球”收听手势。要将其限制在选项卡中,您可以检查手势是否发生在选项卡的边界内。
手势检测器
使用提供的 MotionEvents 检测各种手势和事件。GestureDetector.OnGestureListener 回调将在发生特定运动事件时通知用户。此类只能与通过触摸报告的 MotionEvents 一起使用(不要用于轨迹球事件)。要使用这个类:
- 为您的视图创建 GestureDetector 的实例在 nTouchEvent(MotionEvent) 方法中确保您调用
- onTouchEvent(运动事件)。回调中定义的方法将在事件发生时执行
来源:http: //developer.android.com/reference/android/view/GestureDetector.html
滑动手势
此页面显示如何使用 GestureDetector 识别滑动手势:http: //smartandroidians.blogspot.com/2010/04/swipe-action-and-viewflipper-in-android.html