Android 安卓键盘隐形

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

我有一个带有按钮的活动A。单击此按钮,活动B启动。ActivityB在xml布局中包含WebView,该布局加载本地存储在设备上的HTML页面。整个网页由几个CSS(重材料)和JSON(大尺寸)组成。此时RAM的使用量约为90MB。HTML中有文本和数字输入字段。问题是在打开和关闭webview 3-4次后,当我单击输入字段时,键盘变得不可见

这是我的活动代码

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编写的代码吗?