点击片段会调用片段

时间:2014-11-19 18:50:57

标签: android android-fragments surfaceview

我的Android应用程序中有一个非常奇怪的问题。该应用程序包含几个片段,其中一个包含一个surfaceView。使用surfaceview更改为片段的最佳时间效果很好,但有时替换是不成功的。然后,如果我触摸surfaceview,后面的片段会收到touchevents而不是实际的片段。

但这有时只会发生,而不是总是发生。所以我找到原因真的很难。 有没有人有相同或类似的问题?

替换我使用以下代码的片段:

Fragment fragment = new Fragment();
fragment.setArguments(bundle);
ft.replace(R.id.frame_container, fragment).addToBackStack(null).commit();

1 个答案:

答案 0 :(得分:0)

听起来你的表面视图没有被告知对触摸事件作出反应。

尝试使用android:clickable="true"setClickable(true)进行点击。这应该可以防止触摸事件通过表面视图到下面的片段。

我使用的另一个技巧是,对于不需要响应触摸的视图,但确实需要阻止事件通过它们,是添加触摸侦听器并吃掉事件:

surfaceView.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
      return true; // true means the event has been processed
    }
});