2011-03-22 45 views
1

我正在研究一個應用程序,它需要顯示一些動態查詢的 HTML內容,包括CSS。 WebView似乎是這類工作的最佳實現。使用CSS修改hr標籤的Android WebView

我測試它的時候遇到了一個錯誤,跟蹤它的 以下CSS標籤:

小時{寬度:100%重要}

的Android的WebView似乎是不能顯示的任何包含此行的html。 一些研究表明,該屬性已被棄用 (鏈接:http://www.w3schools.com/tags/att_hr_width.asp),但它在所有瀏覽器上都可以運行 。

下面是一些html,包括這一行。它會在任何 瀏覽器中呈現罰款。

<html> 
    <head> 
    <style type=\"text/css\"> 
     hr{width:100%!important} 
    </style> 
    </head> 
    <body> 
    Some text 
    </body> 
</html> 

而且,在安卓

  String exampleCSS = "<html><head><style type=\"text/css\">" + 
          "hr{width:100%!important}" + 
          "</style></head><body>" + 
          "Some text" + 
          "</body></html>"; 
      WebView webView = (WebView) findViewById(R.id.web_html_about); 
      webView.loadData(exampleCSS, "text/html", "utf-8"); 

結果是 「找不到網頁」 的錯誤在web視圖。

這是由於棄用而引起的已知問題嗎?這是WebView的錯誤嗎? 是否有任何已知的解決此類問題的方法?

+0

雖然webview不應該這樣,但我會嘗試不內聯CSS。將所有的CSS放在一個地方(或幾個地方)。 – aptwebapps 2011-03-22 16:20:29

回答

2

它看起來像android webview使用data://方案傳遞內容,因此,您將不得不urlencode內容才能按預期工作。 在我的情況下,CSS/HTML提供給我,所以我不得不使用以下解決方法:

((WebView) findViewById(R.id.web_body)).loadDataWithBaseURL(null, content, null, "utf-8", null); 

這似乎是工作,並獲得通過以上這一具體問題。 感謝所有回答。 戴爾。

2

Hr不折舊,儘管它具有語義意義。它表明內容發生了變化。

我不確定是什麼導致你的問題,但我可以告訴你你的標記爲書面是不必要的。 Hr是塊級元素,因此它已經具有100%的寬度。

+0

謝謝你的回答,克里斯。你是對的,但源HTML不是我自己的,所以我無法控制。 – 2011-05-13 15:34:17