Android 安卓键盘隐形
我有一个带有按钮的活动A。单击此按钮,活动B启动。ActivityB在xml布局中包含WebView,该布局加载本地存储在设备上的HTML页面。整个网页由几个CSS(重材料)和JSON(大尺寸)组成。此时RAM的使用量约为90MB。HTML中有文本和数字输入字段。问题是在打开和关闭webview 3-4次后,当我单击输入字段时,键盘变得不可见 这是我的活动代码Android 安卓键盘隐形,android,android-webview,android-softkeyboard,Android,Android Webview,Android Softkeyboard,我有一个带有按钮的活动A。单击此按钮,活动B启动。ActivityB在xml布局中包含WebView,该布局加载本地存储在设备上的HTML页面。整个网页由几个CSS(重材料)和JSON(大尺寸)组成。此时RAM的使用量约为90MB。HTML中有文本和数字输入字段。问题是在打开和关闭webview 3-4次后,当我单击输入字段时,键盘变得不可见 这是我的活动代码 public class LaunchActivity extends Activity { WebView webView; pr
public class LaunchActivity extends Activity {
WebView webView;
private final int FILECHOOSER_RESULTCODE = 1;
private Uri mCapturedImageURI = null;
public String mCameraPhotoPath;
String webViewUrl;
public String mMediaType;
public int flag = 0;
public File imageStorageDir;
Bundle bundle;
String mode;
public ProgressDialog progDailog;
int questionToBeLaunch;
Project project;
public void onBackPressed() {
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.launch_survey);
// getting data from intent and creating the url to load.
webView = (WebView) findViewById(R.id.webView1);
setWebViewProperties();
Map<String, String> header = new HashMap<String, String>(2);
header.put("Pragma", "no-cache");
header.put("Cache-Control", "no-cache");
webView.loadUrl(webViewUrl, header);
}
public void setWebViewProperties(){
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
// Javascript enabled on webview
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.addJavascriptInterface(jsInterface, "interface");
// Other webview options
webView.getSettings().setLoadWithOverviewMode(true);
//webView.getSettings().setUseWideViewPort(true);
//Other webview settings
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.getSettings().setSupportZoom(true);
progDailog = new ProgressDialog(LaunchSurvey.this);
//Load url in webview
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
progDailog.setMessage("Loading...");
progDailog.setCanceledOnTouchOutside(false);
progDailog.setCancelable(false);
progDailog.show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
webView.clearCache(true);
}
});
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
// webView.setOnTouchListener(null);
webView.removeAllViews();
webView.clearCache(true);
webView.clearHistory();
// clearCache(getApplicationContext());
webView.destroy();
webView = null;
}
}
公共类启动活动扩展活动{
网络视图;
私有最终int文件选择器_RESULTCODE=1;
私有Uri mCapturedImageURI=null;
公共字符串mCameraPhotoPath;
字符串webViewUrl;
公共字符串类型;
公共int标志=0;
公共文件imageStorageDir;
束;
字符串模式;
公共进程对话程序日志;
int-questionToBeLaunch;
项目;
public void onBackPressed(){
}
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.launch_survey);
//从intent获取数据并创建要加载的url。
webView=(webView)findViewById(R.id.webView1);
setWebViewProperties();
映射头=新的HashMap(2);
header.put(“Pragma”,“无缓存”);
header.put(“缓存控制”、“无缓存”);
loadUrl(webViewUrl,标题);
}
public void setWebViewProperties(){
JavaScriptInterface jsInterface=新的JavaScriptInterface(此);
//在webview上启用Javascript
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
addJavascriptInterface(jsInterface,“接口”);
//其他网络视图选项
webView.getSettings().setLoadWithOverview模式(true);
//webView.getSettings().setUseWideViewPort(true);
//其他网络视图设置
webView.setScrollBarStyle(webView.SCROLLBARS\u外部\u覆盖);
webView.SetScrollBarFadinEnabled(假);
webView.getSettings().setBuilTinZoomControl(true);
webView.getSettings().setDisplayZoomControl(false);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setAllowFileAccessFromFileURLs(true);
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.getSettings().setSupportZoom(true);
progDailog=newprogressdialog(LaunchSurvey.this);
//在webview中加载url
setWebViewClient(新的WebViewClient(){
@凌驾
公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){
view.loadUrl(url);
返回true;
}
@凌驾
public void onPageStarted(WebView视图、字符串url、位图favicon){
super.onPageStarted(视图、url、favicon);
setMessage(“正在加载…”);
progDailog.setCanceledOnTouchOut(false);
progDailog.setCancelable(假);
progDailog.show();
}
@凌驾
公共void onPageFinished(WebView视图,字符串url){
super.onPageFinished(视图、url);
clearCache(true);
}
});
}
@凌驾
受保护的void onPause(){
super.onPause();
}
@凌驾
受保护的空onDestroy(){
super.ondestory();
//setOnTouchListener(null);
removeallview();
clearCache(true);
webView.clearHistory();
//clearCache(getApplicationContext());
destroy();
webView=null;
}
}
经过几天的努力,我终于找到了您问题的根本原因。这可能是因为webview需要解析繁重的javascript代码。试着把它调亮一点,然后你就都准备好了,数字键盘就看不见了 经过几天的努力,我终于找到了你问题的根源。这可能是因为webview需要解析繁重的javascript代码。试着把它调亮一点,然后你就都准备好了,数字键盘就看不见了 我有同样的问题,在网上搜索过,尝试过不同的东西,但没有效果。你能专门分享你为webview编写的代码吗?我有同样的问题,在网上搜索过,尝试过不同的东西,但没有效果。你能专门分享你为webview编写的代码吗?