2

我的应用程序有一个片段 A 和片段 B,片段 A 包含 aGridViewListView如下所示:

             fragment A
-------------------------------------
|                       |            |
|                       |            |
|                       |            |
|        GridView A     | ListView A |
|                       |            |
|                       |            |
|                       |            |
|                       |            |
|                       |            |
--------------------------------------

并且片段 B 包含 aListView和 aLinearLayout如下:

--------------------------------------
|            |                       |
|            |                       |
|            |                       |
|            |                       |
| ListView B |     LinearLayout B    |
|            |                       |
|            |                       |
|            |                       |
|            |                       |
|            |                       |
--------------------------------------

当aListView在fragment A上点击A的item时,会启动fragment B并显示item的详细信息。但是在fragment B上,当我触摸曾经是GridViewA或ListViewA区域的屏幕时,它仍然响应GridViewA的onTouch()方法或ListViewA的onClick()方法。这是我第一次使用Fragment,我很困惑。

4

1 回答 1

2

听起来触摸正在泄漏到第一个片段。我会在片段 B 的根布局上设置一个 onTouch 侦听器,以防止在其布局可见时进行触摸。

所以对于这些方面的东西:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
     View root = inflater.inflate(R.layout.fragmentBlayout, container, false);
    root.setOnTouchListener(new OnTouchListener()
    {
        @Override
        public boolean onTouch(View v, MotionEvent event)
        {
        /** Intercepts touches from going through. */
        return true;
        }
    });

    /** Find the rest of your views... */

   return root;
}
于 2012-09-18T04:41:35.413 回答