2017-05-26 3 views
0

Ich möchte ein searchView verwenden, um in webview zu suchen, wenn ich darin suche, hat webview Änderung und heranzinig vergrößern, ich benutze webView, um epub Buch darin zu zeigen, zeigte ich mehr Detail in zwei Screenshots (nach, bevor) und meinem Code und füge hier
mein Android-Gerät o ist Android Kitkat ScreenShot (Normal state)verhindern, Webview zu vergrößern, wenn Searchview verwendet

ScreenShot(when Use Search

ausführlicher in 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; 
    } 

Antwort

0

Versuchen Sie, den automatischen Zoom der Webansicht zu deaktivieren:

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