记录下最近开发中研究的带进度条的WebView 自定义类吧。
其实网上有不少这样的帖子,但是都没有一个完整的好用的例子,最关键的是,用网上的例子后有一个很明显的bug,就是遇到输入框的话没法弹出软键盘。研究了好久总算搞定了。特此记录下。
直接上源代码,关于代码的解释,个人感觉注释中已经添加的足够清楚了。
ProgressWebView
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import com.touziqu.sealily.newinvestmentgo.R;
import com.touziqu.sealily.newinvestmentgo.Utils.LogUtils;
import com.touziqu.sealily.newinvestmentgo.Utils.OnWebCallBack;
/**
* File Description: 自定义带有进度条的webview
* 继承自{@link WebView}
* Created by KAKA on 16/1/19 22:21
* 主要在{@link ProgressWebView#ProgressWebView(Context, AttributeSet, int)}中完成实例的构建
* 使用{@link ProgressWebView#ProgressWebView(Context, AttributeSet)}时要注意destyle类型的设置
*/
@SuppressWarnings("deprecation")
public class ProgressWebView extends WebView {
/**
* 进度条
*/
private ProgressBar progress_bar_;
/**
* 回调
*/
private OnWebCallBack onweb_callback_;
/**
* Description: Default Constructor
* Created by KAKA on 16/1/19 22:23
*/
public ProgressWebView(Context context) {
super(context);
}
/**
* 不能直接调用this(context, attrs,0),最后style是0的话,会导致无法响应点击动作。
* 但是如果直接把最后一位写成 com.android.internal.R.attr.webViewStyle 编译时会弹出错误提示,原因:
* You cannot access id's of com.