Android ListView容差

时间:2011-09-07 19:33:50

标签: android

我有列表项,每个项目都有一个Horizo​​ntalScrollView。因此,我应该可以在列表中上下滑动,也可以水平滑动列表项。 (例如Pulse News App)。

我遇到的是,每当我滚动Horizo​​ntalScrollView时,ListView也会稍微滚动,但会在用户体验方面产生恼人的干扰。

所以,我实际上是想继承ListView并实现我自己的ListView小部件。但是,我不知道要覆盖哪种方法,以便我可以增加X容差并阻止listview提供这些不必要的闪烁。

1 个答案:

答案 0 :(得分:1)

gestureDetector = new GestureDetector(new YScrollDetector());

public boolean onInterceptTouchEvent(MotionEvent ev) {


        //Call super first because it does some hidden motion event handling
        boolean result = super.onInterceptTouchEvent(ev);
        //Now see if we are scrolling vertically with the custom gesture detector
        if (gestureDetector.onTouchEvent(ev)) {
            return result;
        } 
        //If not scrolling vertically (more y than x), don't hijack the event.
        else {
            return false;
        }
    }

    // Return false if we're scrolling in the x direction  
    class YScrollDetector extends SimpleOnGestureListener {
        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            try {
                if (Math.abs(distanceY) > Math.abs(distanceX)) {
                    return true;
                } else {
                    return false;
                }
            } catch (Exception e) {
                // nothing
            }
            return false;
        }
    }

这对你有帮助,你必须在你创建的自定义列表视图中覆盖这些,我用它来消除我的应用程序中的问题。希望这可以帮助。