package com.wenhui.lib.scrollableslidinguppanelayout;
import android.content.Context;
import android.support.v4.view.MotionEventCompat;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ScrollView;
/**
* ScrollView that is for working with ScrollableSlidingUpPaneLayout
* @author wenhuiyao
*
*/
public class SlideableScrollView extends ScrollView implements ScrollableSlidingUpPaneLayoutHelper.ViewDelegate{
final static String TAG = "SlideableScrollView";
private boolean isReadyToPull = false;
int mInitialY = -1;
private int mVerticalScrollOrigin = -1;
public SlideableScrollView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}
public SlideableScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SlideableScrollView(Context context) {
super(context);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
final int action = MotionEventCompat.getActionMasked(event);
if( action == MotionEvent.ACTION_DOWN && getScrollY() <= 0 ){
mInitialY = (int) event.getY();
isReadyToPull = true;
}
return super.onInterceptTouchEvent(event);
}
@Override
public boolean isReadyForPull(View view, float x, float y) {
return isReadyToPull && mVerticalScrollOrigin <= 0;
}
@Override
protected void onScrollChanged (int l, int t, int oldl, int oldt){
mVerticalScrollOrigin = t;
super.onScrollChanged(l, t, oldl, oldt);
}
}