我正在玩android的Fragments
,我发现了一些对我来说没什么意义的东西。
我正在使用兼容性软件包并在2.3.3的nexus上进行测试,因为我还没有motorola xoom。
我的问题是:
当我将fragment
替换为另一个时,后面的那个继续接收触摸。
这是重现的代码。
我有一个项目列表,当你按一行时,将创建并显示一个新的片段。
但是如果您触摸绿色片段,ListFragment
会收到它,会增加我必须返回的按钮数量,以便返回ListFragment
。< / p>
有人可以解释原因吗?
编辑: 正如CommonsWare建议的那样,我删除了粘贴在此处的代码,因为我在android问题跟踪器中将其作为issue打开,您可以从那里download演示项目。
答案 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.
}
});