Android检测片段内的触摸事件

9

enter image description here

我的活动中有两个碎片,碎片2重叠在碎片1上面,碎片1占据整个屏幕。当用户点击碎片1时,我希望碎片2消失。

我的问题是如何确定碎片1被点击了?碎片1主要由一个Webview组成,我想使用它的setOnTouchListener,但似乎从未被调用。

任何建议都将不胜感激。

Bradley4

这是我如何实现onTouchListener:

1)首先我实现了 "OnTouchListener"

public class Frag_ItemDetail extends Fragment implements OnTouchListener {

2) 然后我重写了 onTouch 方法

@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("myclass", "onTouch"); 
return false;
}

3) 然后我将setOnTouchListener设置为我的Webview

WebView itemFullDescription = (WebView) v.findViewById(R.id.itemFullDescription);
WebView.setOnTouchListener(this); 

我在一个按钮上设置了onTouchListenerner,它运作得很好。但是设置在WebView上就不起作用了。


我已经发布了一些代码片段。现在我将尝试在活动级别进行一些操作,希望我能有更好的运气。 - bradley4
1
我使用了onInterceptTouchEvent(),它可以很好地与WevViews配合使用。 - bradley4
在Fragment中注册触摸监听器没有效果,我认为你应该将目标指向根视图/布局,参见http://stackoverflow.com/questions/12469651/why-my-fragments-ontouch-and-onclick-method-still-response-when-it-has-star。 - Cel
2个回答

4

我扩展了 LinearLayout 类并覆盖了 onInterceptTouchEvent 方法,所以当触摸 Fragment1 时,Fragment2 将消失,这个功能已经实现。


0

你的返回值 false 应该改为 true 吗?如果触摸了 activity 2(或者 webview),应该返回 true。反之亦然。


谢谢你的帮助Yoshi24,但将其更改为true并没有起作用。 - bradley4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接