我正在玩 android 的 Fragments
,我发现了一些对我来说意义不大的东西。
我正在使用兼容包并在带有 2.3.3 的 nexus one 上进行测试,因为我还没有摩托罗拉 xoom。
我的问题是:
当我用另一个替换 fragment
时,后面的那个继续接收触摸。
这是要重现的代码。
我有一个项目列表,当您按一行时,将创建并显示一个新 fragment 。
但是 如果您触摸绿色 fragment ,它将被 ListFragment
接收,增加我必须按下的后退按钮数量才能返回到 ListFragment
。
谁能解释一下为什么?
编辑: 正如 CommonsWare 所建议的那样,我删除了粘贴在此处的代码,因为我将其作为 issue 打开。在 android 问题跟踪器中,您可以 download那里的演示项目。
最佳答案
我遇到了类似的问题。我在一个较大的 fragment 之上有一个较小尺寸的 fragment ,您可以看到较大的 fragment 从较小的 fragment 中伸出来。在某些情况下,当我按下顶部的 fragment 时,它会触发底部 fragment 的 onClick 事件处理程序。
为了防止这种情况发生,我将 onClickListener 设置为较小 fragment 的父布局。通过这样做,它可以防止将 onClick 事件传递到它后面的 fragment 。
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.
}
});
关于android - Fragments 如何处理触摸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5318329/