Android的自定义滑动事件ScrollView

时间:2014-10-13 23:24:21

标签: android scrollview swipe gesture

我正在尝试在ScrollView中实施滑动,如果我向下滑动(甩动)我的手指,ViewGroup对象将被刷新(或者只是调用方法来创建新项目),如果我向上滑动手指,ViewGroup对象将被关闭。

如果你曾经使用过Feedly,它会向下滑动以刷新并向上滑动以关闭文章。

我怎么能实现这一点,是否有一个样本项目可以做到这一点?

我了解可以使用SwipeRefreshLayout完成刷新部分,但SwipeRefreshLayout没有向上滑动关闭功能。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以查看此示例,以便在ListView,GridView,WebView,Expandable ListView中实现pull to refresh。

使用此示例并根据您的观点进行适当的更改。

https://github.com/chrisbanes/Android-PullToRefresh

要处理向上滑动,请执行onTouchEvent来处理向上滑动事件。

Android Documentation

@Override
public boolean onTouchEvent(MotionEvent event){ 

    int action = MotionEventCompat.getActionMasked(event);

    switch(action) {
        case (MotionEvent.ACTION_DOWN) :
            Log.d(DEBUG_TAG,"Action was DOWN");
            return true;
        case (MotionEvent.ACTION_MOVE) :
            Log.d(DEBUG_TAG,"Action was MOVE");
            return true;
        case (MotionEvent.ACTION_UP) :
            Log.d(DEBUG_TAG,"Action was UP");
            return true;
        case (MotionEvent.ACTION_CANCEL) :
            Log.d(DEBUG_TAG,"Action was CANCEL");
            return true;
        case (MotionEvent.ACTION_OUTSIDE) :
            Log.d(DEBUG_TAG,"Movement occurred outside bounds " +
                    "of current screen element");
            return true;      
        default : 
            return super.onTouchEvent(event);
    }      
}

修改MotionEvent.ACTION_UP案例以关闭文章。