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就直接貼了上去
而等前者執行完畢後,就把後者覆蓋掉,因此只看得到這組資料

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

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

2010年12月2日 星期四

Airport Express error code 15006錯誤兼設定教學

這幾天因為太認真工作,結果購物慾望發作
想了一下,就買了台airport express, 想說這樣拿著NB到處走的時候就不用每次都要拔喇叭
貨到很快,包裝維持了Apple一貫的簡潔與環保
快樂的接上網路線設定完之後拔到喇叭旁邊接上
興奮的開啟iTunes... god damn it, Error 15006
查了一下,這問題是陳年舊疾
至少2009年初就發病了(靠..這麼久都還沒修好

找得到的解法有好幾種
最簡單的:
關掉nb上的airport, 過幾分鐘再打開讓他重新搜尋(這期間iTunes不要關掉)
可是這招在我這無效 orz

之後調整了一下
在Airport程式中,給了揚聲器密碼後
就一切順利..

這邊說一下我的環境
我這邊已經有一個無線ap,設定好了無線網路1
然後把Airport Express接到插座
開啟Airport工具程式
設定為加入無線網路,讓他加入無線網路1
如果無線網路有密碼就設定密碼(我是用Mac, 所以不確定windows上面會不會自己帶密碼進去)
接下來選Airport工具程式上面的音樂選項
Airtunes預設是啟用的
這邊隨便給個密碼就好

然後開啟iTunes, 在右下角切換喇叭測試就知道有沒有成功了

除錯心得
15006應該是一個iTunes找不到Airport Express上喇叭或無法取得喇叭權限的錯誤
不確定原因,不過看來給予密碼可以跳過這一問題就是了

使用心得
Airtunes(竟然)只能在itunes中使用..
而且只接受itunes的音量控制,機器上的音量調整對他無用 orz
大概會吃掉120-140KB/s的上傳網路
開網頁時,還是要另外接喇叭或使用mbp上的喇叭..
這設計太殘廢了吧(翻桌)