Android Webview大型表现缓慢

时间:2011-11-22 06:15:26

标签: android forms webview

我正在使用Android WebView查看本地HTML文件。这个HTML文件有大约500个文本框,当我尝试在文本框中输入内容时,它无法自动显示该字符。它显示得很晚,很慢。

我正在使用以下代码:

WebView webview = (WebView) this.findViewById(R.id.appWebView);
webview.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");
 //webview.clearHistory();
 //webview.clearFormData();
 //webview.clearCache(true);
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webview.setVerticalScrollBarEnabled(false);
webview.setHorizontalScrollBarEnabled(false);

// disable scroll on touch
webview.setOnTouchListener(new View.OnTouchListener() {
  @Override
   public boolean onTouch(View v, MotionEvent event) {
    if(!AppView.this.origin.equalsIgnoreCase("termsofuse")){
       return (event.getAction() == MotionEvent.ACTION_MOVE);
       }
        return false;
       }
        });

WebSettings webSettings = webview.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
webSettings.setPluginsEnabled(true);
webSettings.setAllowFileAccess(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
webSettings.setRenderPriority(RenderPriority.HIGH);

final Activity activity = this;
webview.setWebChromeClient(new WebChromeClient() {
       /*
         public void onProgressChanged(WebView view, int progress) {
         // Activities and WebViews measure progress with different scales.
         // The progress meter will automatically disappear when we reach 100%
         activity.setProgress(progress * 1000);
          }
          */
        });
        webview.setWebViewClient(new WebViewClient() {
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
          }

       @Override
        public void onPageStarted(WebView view, String url,Bitmap favicon) {
                // TODO Auto-generated method stub
                super.onPageStarted(view, url, favicon);
                 if(AppView.this.bgHeigth.equalsIgnoreCase("470px")){
                    view.setInitialScale(155);
                }else{ //420px
                    view.setInitialScale(126);
                }

            }
        });


   webview.loadUrl( "file:///" + Environment.getExternalStorageDirectory() + "/Some/Directory/main.html" );

任何想法如何解决这个问题?

0 个答案:

没有答案