您的位置:首页 > 移动开发

监听WebView的各种点击事件

2015-05-04 15:32 281 查看
重写WebView,在WebView中设置接口,相当于自定义一个OnClickListener接口,然后使用的时候就可以调用setOnTouchScreenListener()方法,实现你想要的效果。

import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.webkit.WebView;

public class MyWebView extends WebView {

private OnTouchScreenListener onTouchScreenListener;

public MyWebView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);

}

public MyWebView(Context context, AttributeSet attrs) {
super(context, attrs);

}

public MyWebView(Context context) {
super(context);

}

@Override
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (onTouchScreenListener != null)
onTouchScreenListener.onTouchScreen();
}
if (event.getAction() == MotionEvent.ACTION_UP) {
if (onTouchScreenListener != null)
onTouchScreenListener.onReleaseScreen();
}

return super.onTouchEvent(event);
}

public interface OnTouchScreenListener {
void onTouchScreen();

void onReleaseScreen();
}

public void setOnTouchScreenListener(OnTouchScreenListener onTouchScreenListener) {
this.onTouchScreenListener = onTouchScreenListener;
}
}


使用的时候:

mWebView.setOnTouchScreenListener(new OnTouchScreenListener() {

@Override
public void onTouchScreen() {
isFlowing = true;
if (flowBottomLL.getVisibility() == View.GONE) {
flowBottomLL.startAnimation(flowbottomLLAppearAS);
flowBottomLL.setVisibility(View.VISIBLE);
}
}

@Override
public void onReleaseScreen() {
isFlowing = false;
if (flowBottomLL.getVisibility() == View.VISIBLE) {

Message msg = handler.obtainMessage(1);
currentTime = System.currentTimeMillis();
Bundle bundle = new Bundle();
bundle.putLong("currentTime", currentTime);
msg.setData(bundle);
handler.sendMessageDelayed(msg, 3000);
}
}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: