【问题标题】:Android detecting on touch inside fragmentAndroid检测片段内的触摸
【发布时间】:2011-08-18 20:27:23
【问题描述】:

我的活动中有两个片段。 Fragment2 与 Fragment1 重叠。而 Fragment1 占据了整个屏幕。当用户点击 Fragment1 我希望 Fragment2 消失。

我的问题是如何确定 Fragment1 被窃听了?

Fragment1 主要由一个 webview 组成,我认为我可以使用它的 setOnTouchListener 但它似乎从未被调用过。

任何建议将不胜感激。

布拉德利4

这就是我实现 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。

【问题讨论】:

  • 我已经发布了一些代码 sn-ps。我现在要在活动级别尝试一些东西,希望我能有更好的运气。
  • 我使用 onInterceptTouchEvent() 代替它与 WevViews 配合得很好。
  • 用 Fragment 注册一个触摸监听器我相信没有效果,你应该定位根视图/布局,见stackoverflow.com/questions/12469651/…

标签: android fragment


【解决方案1】:

我扩展了LinearLayout 类并覆盖了onInterceptTouchEvent,所以如果Fragment1 被触摸,Fragment2 就会消失,这是有效的。

【讨论】:

    【解决方案2】:

    你的 return false 应该是 return true 吗?如果活动 2 被触摸(或 webview),它应该返回为真。反之亦然

    【讨论】:

    • 感谢 Yoshi24 的帮助,但更改为 true 并没有帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-10-01
    • 1970-01-01
    • 2013-07-06
    • 2013-04-12
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    相关资源
    最近更新 更多