2013-11-09 88 views
3

我使用Twitter Bootstrap 3和固定頂部導航欄。
我的android應用程序中有一個Webview。Android webview和Twitter bootstrap固定導航欄無法點擊

我在應用程序中添加了很多功能,但我找不到解決此問題的方法。 一切工作正常。
用戶點擊固定頂部導航欄中的鏈接,webview加載新的URL。

但當
*用戶加載網頁
*,那麼轉到頁的底部
*頁轉到頂部
[PART 1點開始]
*用戶點擊導航欄鏈接
*導航欄的鏈接可以」噸被點擊
*鏈接不響應
[PART 2點開始]
*用戶滾動頁面中一個非常小的量下降(比方說1-2毫米。)
* VERTIC al滾動條出現在右側
[第3部分開始]
*用戶點擊鏈接
*導航欄鏈接是可點擊的。

對不起,我不能在這裏提供應用程序代碼,但我可以盡我所能調試問題。下面我粘貼了第1部分,第2部分和第3部分的logcat結果。

小提琴:http://jsfiddle.net/mavent/X3THf/19/

<nav class="navbar navbar-inverse navbar-fixed-top visible-xs" role="navigation"> 
    <div class="navbar-header" style="text-align:center;"> 
     <button type="button" class="navbar-toggle pull-left" data-toggle="collapse" data-target=".navbar-part2"> <span class="sr-only">Toggle navigation</span> 
<span class="icon-bar"></span> 
<span class="icon-bar"></span> 
<span class="icon-bar"></span> 

     </button> 
     <button type="button" class="navbar-toggle pull-right" data-toggle="collapse" data-target=".navbar-part3" style="padding: 3px 15px;"> 
      <img src="http://www.wdc.com/Global/images/icons/icon_supporthelp.gif" width="24" height="24" alt="aaaa"> 
     </button> 
     <div style="padding-top: 15px;"> <a href="/page0" title="aaa" style="color:#ffffff;margin-top:40px;">Example.com</a> 

     </div> 
    </div> 
    <div class="collapse navbar-collapse navbar-part2"> 
     <ul class="nav navbar-nav"> 
      <li><a href="/page1">page 1</a> 

      </li> 
      <li><a href="/page2">page 2</a> 

      </li> 
     </ul> 
    </div> 
    <div class="collapse navbar-collapse navbar-part3"> 
     <ul class="nav navbar-nav"> 
      <li><a href="/page3">page 3</a> 

      </li> 
      <li><a href="/page4">page 4</a> 

      </li> 
     </ul> 
    </div> 

在我的WebView我不作非常具體的行動。這是一個普通的webview。

mWebView = (WebView) findViewById(R.id.webview); 
mWebView.setWebChromeClient(new myWebChromeClient()); 
mWebView.setWebViewClient(new myWebViewClient()); 
mWebView.getSettings().setJavaScriptEnabled(true); 
String defaultUserAgent = mWebView.getSettings().getUserAgentString(); 
mWebView.getSettings().setUserAgentString(defaultUserAgent+" my app"); 

[PART 1] 
11-09 13:27:03.522 17315-17355/com.example.android E/webcoreglue﹕ Should not happen: no rect-based-test nodes found 
11-09 13:27:03.612 17315-17315/com.example.android V/WebViewInputDispatcher﹕ blockWebkitDraw 
11-09 13:27:03.612 17315-17315/com.example.android V/WebViewInputDispatcher﹕ blockWebkitDraw lockedfalse 
11-09 13:27:03.622 17315-17315/com.example.android V/webview﹕ singleCursorHandlerTouchEvent -getEditableSupport FASLE 
11-09 13:27:03.923 17315-17355/com.example.android D/webview﹕ blockWebkitViewMessage= false 

[PART 2] 
11-09 13:27:32.711 17315-17315/com.example.android V/WebViewInputDispatcher﹕ blockWebkitDraw 
11-09 13:27:32.711 17315-17315/com.example.android V/WebViewInputDispatcher﹕ blockWebkitDraw lockedfalse 
11-09 13:27:32.711 17315-17315/com.example.android V/webview﹕ singleCursorHandlerTouchEvent -getEditableSupport FASLE 

[PART 3] 
11-09 13:27:42.650 17315-17315/com.example.android V/WebViewInputDispatcher﹕ blockWebkitDraw 
11-09 13:27:42.650 17315-17315/com.example.android V/WebViewInputDispatcher﹕ blockWebkitDraw lockedtrue 
11-09 13:27:42.650 17315-17315/com.example.android V/webview﹕ singleCursorHandlerTouchEvent -getEditableSupport FASLE 
11-09 13:27:42.961 17315-17355/com.example.android D/webview﹕ blockWebkitViewMessage= false 
11-09 13:27:48.176 17315-17355/com.example.android I/GATE﹕ <GATE-M>DEV_ACTION_COMPLETED</GATE-M> 
11-09 13:27:48.256 17315-17315/com.example.android W/IInputConnectionWrapper﹕ getSelectedText on inactive InputConnection 
11-09 13:27:48.256 17315-17315/com.example.android W/IInputConnectionWrapper﹕ setComposingText on inactive InputConnection 
11-09 13:27:48.256 17315-17315/com.example.android W/IInputConnectionWrapper﹕ getExtractedText on inactive InputConnection 

所以每次導航欄鏈接沒有的功能,用戶必須頁面上的一些滾動,然後單擊鏈接。

+0

我對使用Bootstrap 3的android 4.3有完全相同的問題。你是否曾經能夠找到解決方案? –

+0

@Mike_G請檢查我的答案。 – trante

回答

0

6個月後,這個問題依然存在。所以下面的回答並不能解決問題。

原因是果凍豆的錯誤。有一個解決方案,完美的作品。

我創建了一個新的WebView類,我使用myWebView類而不是默認的WebView類。 本主題幫助我很多:Android WebView JellyBean -> Should not happen: no rect-based-test nodes found

public class MyWebView extends WebView 
{ 
    Context mContext; 

    public MyWebView(Context context) 
    { 
     super(context); 
     mContext = context; 
    } 

    public MyWebView(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
     mContext = context; 
    } 

    public MyWebView(Context context, AttributeSet attrs, int defStyle) 
    { 
     super(context, attrs, defStyle); 
     mContext = context; 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_DOWN){ 

      int temp_ScrollY = getScrollY(); 
      scrollTo(getScrollX(), getScrollY() + 1); 
      scrollTo(getScrollX(), temp_ScrollY); 
     } 
     return super.onTouchEvent(event); 
    } 
} 
+0

由於某些原因getScrollY和scrollTo在Eclipse中未被識別。我使用PhoneGap並試圖在我的類中實現擴展DroidGap。 –

+0

現在我剛剛意識到這個問題不像你的問題。我最上面的按鈕是可以點擊的,但只能在其上邊緣。 http://stackoverflow.com/questions/20409632/android-4-3-and-phonegap-cant-tap-link –

0

我把它從6月4日,該問題仍然存在你的編輯,也許是由於Android的JB的問題。

即使在Android中不是問題,bootstrap 3也不支持JB中webview使用的Android瀏覽器。

我知道的唯一解決方案是使用Intel's crosswalk project(可能通過Cordova或Google的CCA)將當前版本的Chromium捆綁爲您的webview,而不是取決於平臺的webview,其功能和怪癖取決於Android版本,差異很大。

這是一個額外的18MB,我敢肯定你不想要,但這樣你可以在所有版本的Android中爲你的應用程序獲得一致的webview。

+0

謝謝你的建議。我不知道人行橫道。但額外的18MB對我們的3MB應用程序來說非常巨大:) – trante