2011-03-16 164 views
1

我想實現一個地址欄,如默認的瀏覽器應用程序,如果用戶向下滾動網頁並且當用戶將網頁滾動到頂部然後向上滾動時再次顯示,可以隱藏。如何在WebView上實現滾動 - 隱藏地址欄?

謝謝!

+0

您可以隨時閱讀[瀏覽器源代碼](http://android.git.kernel.org/?p=platform/packages/apps/Browser.git;a=summary)。 – 2011-03-16 19:43:29

回答

0

設置onTouchListener你的WebView,檢查wv.getScrollY(),看它是否爲0。像這樣:

mWebView.setOnTouchListener(new OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent me){ 
      if(me.getAction() == MotionEvent.ACTION_UP){ //You might try with MotionEvent.ACTION_MOVE also, but you'll get way more calls. 
       if(mWebView.getScrollY() == 0){ 
        //You are at the top, do what you need to do in order to show your address bar. 
       } 
      } 

      return false; 
     } 
    }); 

,如果用他們的手指在用戶滾動並釋放他們的手指都該示例將工作在頂部的方式。這不會處理用戶滾動到頂部的所有可能方式。我認爲要處理它們,所有理想的解決方案都是覆蓋WebView並向其添加一個監聽器,只要getScrollY()從任何東西改變爲零,就會向您發送一個調用。

+0

我想要Android內置瀏覽器的相同滾動行爲,而不僅僅是檢查WebView的滾動位於頂部。 – basicsharp 2011-03-19 08:56:36

0
try { 
     Method m = WebView.class.getMethod("setEmbeddedTitleBar", new Class[] { View.class }); 
     m.invoke(mWebView, url_bar); 
    } 
    catch(Exception e) { 
    } 

mWebView是Web視圖(..)和url_bar在頂部所需的視圖。

編輯
更多here,注意在接受答案的評論。