您的位置:首页 > 移动开发

Android WebView 文本框获取焦点后自动放大的解决方案

2012-08-09 16:28 567 查看
之所以出现这种情况,主要是当文本框获取到焦点后,键盘自动弹出,会执行WebView的displaySoftKeyboard
方法,这个方法会把缩小的网页恢复到正常情况(也就是说缩小的网页放大),但是我目前的项目都是不允许页面缩放的,所以一旦页面放大后就无法恢复。

webview.setOnFocusChangeListener(new View.OnFocusChangeListener() {

@Override

public void onFocusChange(View v, boolean hasFocus) {

if(hasFocus)

{

try {

Field defaultScale = WebView.class.getDeclaredField("mDefaultScale");

defaultScale.setAccessible(true);

//WebViewSettingUtil.getInitScaleValue(VideoNavigationActivity.this, false )/100.0f 是我的程序的一个方法,可以用float 的scale替代

defaultScale.setFloat(webview, 1);

} catch (SecurityException e) {

e.printStackTrace();

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (NoSuchFieldException e) {

e.printStackTrace();

}

}

}

});

利用java反射机制,setFloat方法比例我设置为1,就是保持不变。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: