OnClickListener上的自定义滚动型内查看 [英] OnClickListener on Views inside a custom ScrollView

查看:126
本文介绍了OnClickListener上的自定义滚动型内查看的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我就吃ViewPager内水平滚动型。以prevent的ViewPager时达到滚动型结束时,我使用这个类按照提示在SO滚动:

I'm havin a horizontal ScrollView inside a ViewPager. To prevent the ViewPager to be scrolled when the end of the ScrollView is reached I use this class as per hint on SO:

public class CustomScrollView extends HorizontalScrollView {

public CustomScrollView(Context p_context, AttributeSet p_attrs) {
    super(p_context, p_attrs);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent p_event) {

    return true;
}

@Override
public boolean onTouchEvent(MotionEvent p_event) {


    if (p_event.getAction() == MotionEvent.ACTION_MOVE
            && getParent() != null) {
        getParent().requestDisallowInterceptTouchEvent(true);
    }

    return super.onTouchEvent(p_event);
}
}

onInterCeptTouchEvent 似乎消耗任何点击该View和里面的一切。当我把查看滚动型,其 OnClickListener 取值将不会被调用。

The onInterCeptTouchEvent seems to consume any click to that View and everything inside it. When I put Views into that ScrollView, their OnClickListeners won't be called.

当我让 onInterceptTouchEvent 返回false,则 OnClickListener s的调用,但滚动型不能滚动。

When I let onInterceptTouchEvent return false, the OnClickListeners are called, but the ScrollView can't be scrolled.

我怎样才能把里面的点击浏览滚动型

How can I put clickable Views inside that ScrollView?

编辑:实施Rotem公司的回答后, onClickListener 的作品,但它不只做火的点击事件也是对别人,喜欢一扔。这是怎么回事prevented?

After implementing Rotem's answer, the onClickListener works, but it doesn't only fire on click events but also on others, like fling. How can this be prevented?

推荐答案

好了,开始一个赏金我发现它是如何工作分钟后:

Well, minutes after starting a bounty I found out how it works:

onInterceptTouchEvent I

return super.onInterceptTouchEvent(p_event);

这篇关于OnClickListener上的自定义滚动型内查看的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆