1.实现接口
implements View.OnClickListener, View.OnTouchListener
2.重写方法
@Override
public boolean onTouch(View v, MotionEvent event) {
return mGestureDetector.onTouchEvent(event);
}
3.创建滑动监控对象
GestureDetector.SimpleOnGestureListener myGestureListener = new GestureDetector.SimpleOnGestureListener(){
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.e("<--滑动测试-->", "开始滑动");
float x = e1.getX()-e2.getX();
float x2 = e2.getX()-e1.getX();
if(x>FLING_MIN_DISTANCE&&Math.abs(velocityX)>FLING_MIN_VELOCITY){
//Toast.makeText(getActivity(), "向左手势", Toast.LENGTH_SHORT).show();
// kuoda.performClick();
// expandMethod();
InfoActivity infoActivity=(InfoActivity)getActivity();
Message msg1 = new Message();
msg1.arg1=1;
infoActivity.JShandler.sendMessage(msg1);
}else if(x2>FLING_MIN_DISTANCE&&Math.abs(velocityX)>FLING_MIN_VELOCITY){
// Toast.makeText(getActivity(), "向右手势", Toast.LENGTH_SHORT).show();
// kuoda.performClick();
narrowMethod();
}else{
System.out.println("上下滑动------");
}
return false;
};
};
4基本完成了,只需要绑定上就可以了
mGestureDetector = new GestureDetector(getActivity(), myGestureListener); collectWebview.setOnTouchListener(this);//将主容器的监听交给本activity,本activity再交给mGestureDetector collectWebview.setLongClickable(true); //必需设置这为true 否则也监听不到手势
5.绑定以及添加双击方法
public void scroll(){
mGestureDetector = new GestureDetector(getActivity(), myGestureListener);
collectWebview.setOnTouchListener(this);//将主容器的监听交给本activity,本activity再交给mGestureDetector
collectWebview.setLongClickable(true); //必需设置这为true 否则也监听不到手势
mGestureDetector.setOnDoubleTapListener(new GestureDetector.OnDoubleTapListener() {
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
return false;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
System.out.println("双击");
int state = collect_Listview.getVisibility();
collectWebview.setVisibility(View.VISIBLE);
if (state == View.GONE) {
collect_Listview.setVisibility(View.VISIBLE);
} else {
collect_Listview.setVisibility(View.GONE);
LinearLayout.LayoutParams params= (LinearLayout.LayoutParams) collectWebview.getLayoutParams();
//获取当前控件的布局对象
params.height=LinearLayout.LayoutParams.MATCH_PARENT;//设置当前控件布局的高度
collectWebview.setLayoutParams(params);//将设置好的布局参数应用到控件中
}
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
return false;
}
});
}