2010年12月3日 星期五

Android開發:multiple webview render bug

被一個奇怪的問題搞了好幾天..在這邊記錄一下
由於專案需求,需要在一個activity中使用到兩組數據
那些數據是以Html方式儲存
所以就以簡單的linearlayout+webview.loadurl處理
然後就結束了!

才怪..這麼簡單解決就不用寫文了 XD
我碰到的問題是android render html時,總是只出現其中一組
把該組拿掉,第二組才會出現
debug沒有報錯下,我往layout編排錯誤的方向尋找了二天依然沒結果
後來使用scrillview內包webview的方法終於讓兩個webview都能同時出現
不過很醜..
剛剛心血來潮又測試了一下,這次把兩個webview的順序對調後,發現兩個都可以出現了!?
可是位置重疊了??

推敲了一下
由於兩組檔案其中有一組比較小,render時間比較短
先執行這組時,就可以兩組一起出現
因為猜測是android render layout webview時,高度是動態的
當先執行內容多的webview再執行內容少的webview時
後者先執行完畢但前者尚未執行完畢,因此後者認為前者高度為0就直接貼了上去
而等前者執行完畢後,就把後者覆蓋掉,因此只看得到這組資料

我是覺得這行為很弔詭..
為什麼前者執行完畢後,無法調整高度呢?

不過暫時時間不多,等之後搞定其他的部份再來調整這塊
應該可以讓他們兩者按照順序執行或乾脆把兩組數據整合在一起

沒有留言: