問題所在:
繼承WebView時,注意構造方法 -** defStyleAttr不能傳0:**
image
正確的寫法:
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();