→ ssccg: xml的屬性只有在View的contructor傳入,怎麼使用這些屬性是 05/13 14:30
→ ssccg: View的內部實作,xml在inflate完就沒用了,不存在何來控制 05/13 14:37
re-parse 一部份,然後變成對應的內部 api 幫我 call 囉 :P
我的想法是,屬性是可以不斷增加的,而 api 很難再增加
所以追不上屬性的數量;但內部 private function 總有法子的
→ ssccg: 至於set method無效的問題,有呼叫View.invalidate? 05/13 14:45
沒,但我找到問題了 :P 見下述
推 LaPass: 2是對的,但不如預期不確定是怎麼一回事 05/13 16:30
其實我 google 很久,用我破破的英文看別人的說明,蠻辛苦
(大多是 stack overflow;這站名.. 堆疊滿出來?看了就覺得我程式壞了 :P)
有人說除了設 enable, 還必需要做個 initialize
trace 進入 lib 的 source code 是有看到這個 initialize,但我呼叫不到啊
剛突然想通:我不能 initialize,但我可以一開始就 initialize
也就是說,xml 裡先設 none (disable)
然後在程式中以 api 設 enable, 這是打不開的
但反過來,xml 裡先 enable (其實都不要打,default 就是了)
然後程式中以 api 設 disable, 是關得掉的
這樣就行啦~ 原來是要用 default on 的寫法 :P
※ 編輯: HuangJC (60.251.197.63), 05/13/2016 19:19:05
→ ssccg: API怎麼會不能增加,屬性怎麼會可以增加? 05/13 20:24
我常常在看 source code 時覺得
"這 private function or variable 如果 public 給我用就好了"
那為什麼不 public?
不是能不能的問題,常是肯不肯的問題
c++ 還好,有時 protected 的,我就繼承一下,轉 public
java 倒狠了,有一招叫 final, 不得再繼承
這... 是要我承認 java 在安全性鎖權限上更嚴密嗎?
那屬性為什麼我以為可以增加呢?
嗯,其實在 compiler 和 script 的比較上
script 常讓我覺得彈性超強;一開始沒說有的功能,以後再定義,再冒出來就好了
實際上我就是很多控制項覺得 xml 裡有,但相對的 api 沒有
因此我就是覺得不是做不到,而是不肯做
或要下一版才公開
我同事用很多 reflect function, 也讓我有這個感覺
這些功能早就寫好了,但就是封在肚子裡
API 是沒有,但繞個圈用 reflect 就拿出來了..
→ ssccg: Java API和XML attr一樣都是API的一部分,沒有哪個容易增加 05/13 20:25
→ ssccg: 哪個不容易,你都看了source應該知道那些attr、value都是已 05/13 20:27
→ ssccg: 經compile成對應的Java constant了吧 05/13 20:27
看 source 也常讓我覺得很奇怪,經常行數是不對的
IDE 的優勢,步進執行,因此無法使用
再說到版本問題好了,我的 java 環境可能裝了 API 17,
但我的手機上的 OS 是 API 19;就不同版本啊
那它骨子裡到底是怎麼做的?
也許只有 API 窗口是對的,用上了類似 win os 裡 DLL 的技術
(沒法子,我就是對 win os 比較熟,所以我用 DLL 來形容它)
DLL 是執行時期才去找尋 function 位置的,靠的是序號,或者 function name(字串)
老實說我覺得和 reflect 很像
因此 IDE 無法準確的跳行數,可能就這個問題
(其實 win os 下寫 vc, 在 dll 上也可能跳不準;如果版本不同的話
我想原因都類似的)
所以 source code 其實是讓我從完全無法下手,變成多少可以猜一點而已 XD
有很多東西仍然是未知的 XDDDD
※ 編輯: HuangJC (114.136.55.123), 05/14/2016 00:14:38
→ ssccg: 把targetSDK設成跟裝置一樣,就會用那版的source 05/14 13:38
→ HuangJC: 那行數就會準?!有機會試試,謝謝 05/14 15:42
→ ssccg: 之前有遇過看source找不到原因的錯誤,結果是新版已修的bug 05/14 22:13