【问题标题】:handle touch inside FragmentActivity在 FragmentActivity 中处理触摸
【发布时间】:2013-09-08 15:52:28
【问题描述】:

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

【问题讨论】:

  • 您能否验证我是否正确理解了问题 - 无论您的应用程序处于何种状态,无论用户触摸屏幕的哪个位置,您都想调用相同的方法?在确定是您要查找的内容后,我会提供代码。
  • 正确,但只是给您的通知。我对我的问题的描述有误。 FragmentActivity 不使用 ViewGroup 布局,而是使用带有 PagerTabStrip 的 ViewPager 来显示当前页面的标题。

标签: android touch android-fragmentactivity


【解决方案1】:

首先来到我的主要是你创建你自己的实现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();
}

【讨论】:

    猜你喜欢
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    相关资源
    最近更新 更多