问题描述:自定义BWWebview extends Webview 使用时发现webview中的
public class BWWebView extends WebView {
public BWWebView(Context context) {
this(context,null);
}
public BWWebView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public BWWebView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
通过addView(new BWWebview(context)) 方式加入到界面中输入框不能弹出软键盘,
修改:
public class BWWebView extends WebView {
public BWWebView(Context context) {
super(context);
init(context);
}
public BWWebView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public BWWebView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
由于使用this导致不能弹出软键盘。
原因:查看源码:
public WebView(Context context) {
this(context, null);
}
public WebView(Context context, AttributeSet attrs) {
this(context, attrs, com.android.internal.R.attr.webViewStyle);
}
public WebView(Context context, AttributeSet attrs, int defStyleAttr) {
this(context, attrs, defStyleAttr, 0);
}
第二个构造方法在调用第三个构造方法时默认添加了AttributeSet 参数com.android.internal.R.attr.webViewStyle