解决FragmentTabHost + WebView 输入框无法输入英文数字问题

时间:2021-05-29 06:26:59

引言


在使用FragmentTabHost的Fragment里面嵌入一个WebView的时候,你会发现html中的输入框无法输入英文或者数字。

当输入英文或者数字的时候,输入框就失去了焦点(在一些机型上表现出来的症状)。

类似的问题有关很多讨论,请参考下面的连接:

https://code.google.com/p/android/issues/detail?id=64153

https://code.google.com/p/android/issues/detail?id=7189

http://www.eoeandroid.com/thread-312932-1-1.html

不过上面提到的解决方法大多带有随机性,我自己的解决办法如下:

// 解决输入框不能输入的bug
mWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
v.requestFocusFromTouch();
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_CANCEL:
break;
}
return false;
}
});

WebView设置如上代码,完美解决BUG!