片段如何处理触摸?

时间:2011-03-15 21:32:14

标签: android android-fragments

我正在玩android的Fragments,我发现了一些对我来说没什么意义的东西。 我正在使用兼容性软件包并在2.3.3的nexus上进行测试,因为我还没有motorola xoom。

我的问题是: 当我将fragment替换为另一个时,后面的那个继续接收触摸。

这是重现的代码。

我有一个项目列表,当你按一行时,将创建并显示一个新的片段。 但是如果您触摸绿色片段,ListFragment会收到它,会增加我必须返回的按钮数量,以便返回ListFragment。< / p>

有人可以解释原因吗?

编辑: 正如CommonsWare建议的那样,我删除了粘贴在此处的代码,因为我在android问题跟踪器中将其作为issue打开,您可以从那里download演示项目。

1 个答案:

答案 0 :(得分:6)

我有类似的问题。我在一个较大的片段顶部有一个较小的片段,你可以看到较大的片段从较小的片段伸出。在某些情况下,当我按下顶部的片段时,它会触发底部片段的onClick事件处理程序。

为了防止这种情况发生,我将onClickListener设置为较小片段的父布局。通过这样做,它可以防止onClick事件传递给它后面的片段。

LinearLayout ll= (LinearLayout) mView.findViewById(R.id.topLayout);
ll.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        //left empty on purpose to capture the onClick event. 
    }
});