發表文章

目前顯示的是 2015的文章

[Android] Activity vs Fragment & Fragment vs View

圖片
前陣子開發就遇到這兩個問題: 當Activity變得太肥大,想切小時,可以把它切成幾個fragment嗎? (還是說fragment只是專門用來處理不同螢幕大小時的版面配置呢?) 當畫面某一區塊有很多功能,且可能會在其他地方重覆出現時,應該要把他做成一個view元件,還是做成一個fragment? 剛好這幾天在看Android Dev Summit 2015的演講(都是由Google內部負責相關領域的工程師出來分享),其中有一小段就談到這個大家時常在問的問題: 他們的看法是: Activities vs Fragments:  Fragment其實就是Activity裡的子件(Fragments are encapsulated parts of Activity),所以當一個Activity變得過於肥大,想要切小時,就可以用fragment。  或者即便Activity不大,但希望對不同部分做出分區時,也一樣可以用fragment。 Fragments vs Views: View只是基礎元件,但Fragment和Activity類似,都有生命週期和對event的控制。 View是被控制的角色,而Fragment則可以控制View,本質是不一樣的東西,所以應該把他們的角色職責化分清楚。 如果只是一個單純的UI元件,用View就可以了;但若和生命週期有關,或要加上Event,再來用fragments. 我的想法是,什麼東西該怎麼用,以及用意何在, 與其自己猜想或和旁人討論,不如直接去問問作者最清楚。 既然作者都出來說話了,應該是相當有參考價值囉!

蝦拼輸入法導致 Mac 輸入速度過慢 解決方法

以前有段時間有在用iPad(那時系統還在iOS6),身為蝦米一族,為了方便中文輸入,所以裝了蝦拼輸入法。 接著再使用我的Mac時,發現在Evernote上打字變得奇慢無比,每打一個字就會卡住,到了完全不能做事的狀態,而在其他應用程式裡,雖然不會這麼慢,但也常出現明明打英文字,按了空白鍵後,會自己轉成相對應嘸蝦米輸入法的中文,十分惱人。 我原先不曉得iCloud會把iPad上設定的鍵盤字詞庫同步到Mac上,所以這個問題困擾了我很久,每次要用evernote時,只好打開網頁版,挺麻煩的。 直到今天忽然意識到這問題可能跟詞庫有關,於是進到鍵盤偏好設定一看,Bingo! 之前在iPad上設的嘸蝦米詞庫,全都跑進我的Mac裡了。所以我每打一個字,它就會到上千筆的詞庫裡去查找一遍,難怪這麼卡慢。於是上網搜尋了一下,終於解決了。 若有遇到類似問題的朋友,可以參考以下步驟處理: 1. 查看字詞庫: 點「系統偏好設定」→「語言與地區」→ 右下角「鍵盤偏好設定」→ 選上方「文字」。確認裡面是否有上千筆的字詞? 如果有,可能這就是打字卡慢的原因了。 2. 快速刪除字詞資料庫: 因為上千筆字詞真的很多,在偏好設定頁面裡一一刪除會非常慢,所以直接刪資料庫會快得多。 進入資料夾: 打開Terminal , 輸入: cd /Users/[your username]/Library/Dictionaries/CoreDataUbiquitySupport/[your username]~[...]/UserDictionary/[...]/store/ 其中 [...] 為數字或英數混合的字串,每個人會有點不同。 (遇到此處時可按tab鍵,就會自動填入,或者顯示可能的選項。如果不會用的話,就打開Finder對著看一下吧) 如此就進到store的資料夾裡頭,在這底下有個資料庫檔案: userDictionary.db 用sqlite3刪除資料庫內容: 在terminal裡,輸入 $ sqlite3 UserDictionary.db   會看到以下畫面: SQLite version 3.7.13 2012-06-11 02:05:22 Enter ".help" for instructions Enter SQL statements termi...