Fragments應該作為你實現UI界面默認選擇。你可以重復使用Fragments用戶接口來 組合成你的應用。我們強烈推薦使用Fragments而不是activity來呈現UI界面,理由如下:
提供多窗格布局解決方案?Fragments 的引入主要將手機應用延伸到平板電腦,所以在平板電腦上你可能有A、B兩個窗格,但是在手機應用上A、B可能分別充滿 整個屏幕。如果你的應用在最初就使用了fragments,那么以后將你的應用適配到其他不同尺寸屏幕就會非常簡單。
屏幕間數據通信?從一個Activity發(fā)送復雜數據(例如Java對象)到另外一個Activity,Android的API并沒有提供合適的方法。不過使用Fragment,你可以使用 一個activity實例作為這個activity子fragments的通信通道。即使這樣比Activity與Activity間的通信好,你也想考慮使用Event Bus架構,使用如?Otto?或者?greenrobot EventBus作為更簡潔的實現。 如果你希望避免添加另外一個類庫,RxJava同樣可以實現一個Event Bus。
Fragments 一般通用的不只有UI?你可以有一個沒有界面的fragment作為Activity提供后臺工作。 進一步你可以使用這個特性來創(chuàng)建一個fragment 包含改變其它fragment的邏輯?而不是把這個邏輯放在activity中。
很不幸,我們不建議廣泛的使用嵌套的fragments,因為 有時會引起matryoshka bugs。我們只有當它有意義(例如,在水平滑動的ViewPager在 像屏幕一樣fragment中)或者他的確是一個明智的選擇的時候才廣泛的使用fragment。
在一個架構級別,你的APP應該有一個頂級的activity來包含絕大部分業(yè)務相關的fragment。你也可能還有一些輔助的activity ,這些輔助的activity與主activity 通信很簡單限制在這兩種方法?Intent.setData()
?或?Intent.setAction()
或類似的方法。
更多建議: