2017-05-26 1 views
0

Je veux utiliser un searchView pour chercher dans webview, quand je recherche dedans, webview a changer et zoomer heppeninig, j'utilise webView pour montrer le livre epub dedans J'ai montré plus de détails dans deux capture d'écran (après, avant) et coller mon code ici
mON OS Android Device est Android KitKat ScreenShot (Normal state)éviter de zoomer dans le webview lors de l'utilisation searchview

ScreenShot(when Use Search

plus en détail dans le code:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_activity_reader, menu); 
     this.menu = menu; 

     final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.action_search)); 
     SearchManager searchManager = (SearchManager) getSystemService(SEARCH_SERVICE); 

     searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
     searchView.setSubmitButtonEnabled(true); 
     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String query) { 
       if (!query.isEmpty()) { 
        searchEnabled = true; 
        if (!flag) { 
         webView.findAllAsync(query); 

         flag = true; 
         try { 
          Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE); 
          m.invoke(webView, true); 
         } catch (Throwable ignored) { 
         } 
        } else { 
         webView.findNext(true); 
        } 

        Log.i("webview", webView.getScrollY() + ""); 

       } 

       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 

       if (newText.isEmpty()) { 
        try { 
         Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE); 
         m.invoke(webView, false); 
        } catch (Throwable ignored) { 
        } 
       } 
       flag = false; 
       return true; 
      } 
     }); 
     searchView.setOnCloseListener(new SearchView.OnCloseListener() { 
      @Override 
      public boolean onClose() { 

       try { 
        Method m = WebView.class.getMethod("setFindIsUp", Boolean.TYPE); 
        m.invoke(webView, false); 
       } catch (Throwable ignored) { 
       } 
       return false; 
      } 
     }); 
     return true; 
    } 

Répondre

0

Essayez de désactiver le zoom automatique de la visualisation Web:

webview.getSettings().setBuiltInZoomControls(false); 
    webview.getSettings().setSupportZoom(false);