gpt4 book ai didi

android - 为什么我的 fragment 的 ontouch() 和 onClick() 方法在启动另一个框架时仍然响应

转载 作者:行者123 更新时间:2023-11-29 00:36:24 25 4
gpt4 key购买 nike

我的应用有 fragment A 和 fragment B, fragment A 包含一个 GridView 和一个 ListView,如下所示:

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

fragment B 包含一个 ListView 和一个 LinearLayout,如下所示:

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

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

最佳答案

听起来好像触摸漏到了第一个 fragment 。我会在 fragment 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;
}

关于android - 为什么我的 fragment 的 ontouch() 和 onClick() 方法在启动另一个框架时仍然响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12469651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com