问题所在:
继承WebView时,注意构造方法 -** defStyleAttr不能传0:**
正确的写法:
public SWebview(Context context) {
super(context);
init(context, null);
}
public SWebview(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
public SWebview(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public SWebview(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init(context, attrs);
}
public SWebview(Context context, AttributeSet attrs, int defStyleAttr, boolean privateBrowsing) {
super(context, attrs, defStyleAttr, privateBrowsing);
init(context, attrs);
}
/**
* 初始化方法
* @param context
* @param attrs
*/
private void init(Context context, AttributeSet attrs){
if (null != attrs){
intStyledAttributes(context, attrs);
}
WebviewUtil.initWebView(this, null, null,
new MyWebChromClient(context), new MyWebClient(context));
settings = this.getSettings();
lastFonSize = fontSize = WebviewUtil.getTextZoom(this);
}
怎么说了,看来这个构造函数有讲究呀!小喵喵~~~~~~
另外可能还需要你设置如下属性requestFocus():
///< 触摸焦点起作用.如果不设置,则在点击网页文本输入框时,不能弹出软键盘及不响应其他的一些事件。
detialWv.requestFocus();