發表文章

目前顯示的是 10月, 2012的文章

Android的@Override Error

圖片
久久沒用Android,重新安裝了環境、匯入Propject後跑出了一些錯誤,都是沒有實作的error,如: Multiple markers at this line - implements android.text.TextWatcher.afterTextChanged - The method afterTextChanged(Editable) of type showTextInputDialog.CustomTextWatcher must override a superclass  原來這是 Java SDK版本對於註記符號支援度 的問題,ADT預設使用Java 1.5( language level 5) 編譯內容,但1.5檢查source的時候並不認得「@Override」註記方法,而認為該class沒有正確override,只要把language level改成1.6(以上)就可以了。修改位置: project >  property > java compiler > Compiler compliance level > 1.6。

Flex 3 Tree 元件的資料更新Bug

圖片
Flex 3 的Tree元件可以使用filterFunction來做過濾的功能,比如介面上有一個文字框,輸入文字後比對Tree內容,不包含這段過濾文字者就不顯示。正確情況應該如下圖所示。 但是如果資料的筆數很多時,在Tree元件上使用filterFunction過濾資料時,Tree的內容會亂掉並跑出幾個奇怪的現象: 過濾以後的Tree高度,不會更新,所以ScrollBar一樣可以向下拉動很長的高度。如下圖示,ScrollBar還是很小,表示Tree內容很長。 過濾後,Tree內容仍然保持很長,那不應該存在的cell會怎樣呢?結果Tree裡面會自動找東西亂填cell,如下圖,過濾後應該有5個cell,但超過第3個cell的名稱就開始重複了。 即使使用了invalidateList、validateNow、Collection.refresh等方法也沒有用,標準解法目前未知,但可以用下列方式將顯示更正。在呼叫完filterFunction以後,加上下列方式: tree.expandItem( [your tree data] ,false); tree.expandItem( [your tree data] ,true); 語意上就是讓Tree展開和關閉一次,expandItem方法內部觸發了某個正確的resize和display方法,什麼方法?暫不研究。