2012-03-05 22 views
0

我使用WebView來顯示HTML內容,其中包括JavaScript功能,用於在按下鏈接時顯示或隱藏頁面的各個部分。默認情況下,所有部分都是隱藏的。一切正常,直到我將WebView的背景設置爲透明爲止,以便在其後面顯示靜態圖像。使用透明WebView背景重疊內容

下面是相關的代碼片段:

HTML部分:

<a class="togglelink-show" onclick="toggle('zone1');">Test</a> 
<div id="zone1" style="display:none"> 
    <p>Some random text that's normally hidden</p> 
</div> 

的JavaScript:

function toggle(id) { 
    ele = document.getElementById(id); 

    if(ele.style.display == "block") { 
     ele.style.display = "none"; 
    } else { 
     ele.style.display = "block"; 
    } 
} 

正如我寫的,那兩個做工精細,直到我設置的WebView有使用webView.setBackgroundColor(0);後的透明背景在此之後,當試圖打開一個部分時,有時WebView不能正確重新佈局,並且內容與下面的部分重疊。

刷新頁面或使用webView.clearView()不起作用,因爲頁面隨關閉部分被刷新。有什麼建議麼?

如果還有另一種在webview後面顯示靜態圖像的方法,那就是調整大小以適應屏幕,這也可以起作用。 (我對HTML有點生疏,只能記住如何平鋪背景圖像,這當然不是我想要的。)

回答

0

我已經解決了這個問題,但是以非常隨機的方式。我不知道哪些元素是魔術把戲,但我已經結束了是這樣的:

添加了一個空div主要內容的窗口上方,和編輯風格:

<div id="fixedBackground"><img src="" width="0%" height="0%"/></div> 
//From the stylesheet: 
#fixedBackground { position:fixed; top:0; left:0; width:100%; height:100%;} 
.content {position:relative; z-index:1;} 

這使WebView顯示的背景變得透明,並且在打開或關閉節之後,所有事情都可以正確地重新定位。

3

我也遇見過。 和我的解決方案是調用「webView.setBackgroundColor(0x01010101);」 我認爲這是多或少比透明。

+0

感謝此 - 我使用「setBackgroundColor(0x01000000);」 – ajh158 2012-10-17 14:08:27