0

我已经为 FragmentActivity 使用 ViewPager 布局实现了滑动视图。即 FragmentActivity 创建一个新的 FregmentPagerAdapter 来管理四个 Fragment 类。我需要拦截一次触摸(无论 Fragment 当前关注什么)来执行操作。我尝试在 FragmentActivity 类中覆盖 onTouchEvent,但它不起作用(可能是因为 FragmentActivity 它只是一个容器,所有视图都被 Fragment 占用)。我能怎么做?执行它的操作独立于它当前显示的片段。

4

1 回答 1

0

我主要的第一件事是创建自己的实现 OnTouchListener 的 View 类,例如:

public class TouchMeView extends View implements OnTouchListener {
  public TouchMeView(Context context) {
    super(context);
    setFocusable(true);
    setFocusableInTouchMode(true);
    this.setOnTouchListener(this);
  }
  public boolean onTouch(View view, MotionEvent event) {
    //IMPLEMENT YOUR ACTION WITHIN THIS METHOD
    return true;
  }
}

请注意,我没有测试此代码,希望您可以自己修改它。

编辑:忘记添加 - 您应该在 FragmentActivity 的 onCreate(...) 方法中将此类的实例附加到您的布局中:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//...
paintView = new PaintView(this);
addContentView(paintView, null);
paintView.requestFocus();
}
于 2013-09-08T07:47:14.853 回答