[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.
我的想法是,什麼東西該怎麼用,以及用意何在,
與其自己猜想或和旁人討論,不如直接去問問作者最清楚。
既然作者都出來說話了,應該是相當有參考價值囉!