Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击片段调用后面的片段_Android_Android Fragments_Surfaceview - Fatal编程技术网

Android 单击片段调用后面的片段

Android 单击片段调用后面的片段,android,android-fragments,surfaceview,Android,Android Fragments,Surfaceview,我的android应用程序有一个非常奇怪的问题。该应用程序包含多个片段,其中一个由surfaceView组成。大多数情况下,使用surfaceview更改片段效果良好,但有时更换不成功。然后,如果我触摸表面查看,后面的片段将接收touchevents,而不是实际片段 但这只是偶尔发生,并非总是。所以我很难找到原因。 有没有人已经有同样或类似的问题 为了替换片段,我使用以下代码: Fragment fragment = new Fragment(); fragment.setArguments(b

我的android应用程序有一个非常奇怪的问题。该应用程序包含多个片段,其中一个由surfaceView组成。大多数情况下,使用surfaceview更改片段效果良好,但有时更换不成功。然后,如果我触摸表面查看,后面的片段将接收touchevents,而不是实际片段

但这只是偶尔发生,并非总是。所以我很难找到原因。 有没有人已经有同样或类似的问题

为了替换片段,我使用以下代码:

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

听起来您的表面视图没有被告知对触摸事件做出响应

尝试使用android:clickable=true或setClickabletrue使其可点击。这将防止触摸事件通过曲面视图传递到下面的片段

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

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

我只是再次寻找原因,但我找不到。但问题不在于表面观!有时候,整个片段不会对touchevents做出反应,但它背后的片段!