又是一個不眠夜,今天8.30還要上班,反正睡不着,就開始填下這個大坑吧....java
##oschina 客戶端的視圖 - 數據 流##android
一開始,把oschina 下載下來一看,就這點包,還覺得,是個很是簡單的客戶端,而後打開某個包,在打開某個類,我錯了....做者,當時開發的時候,還沒開始研究android 視圖的一個新的機制Fragment,我的見解,在fragment還沒出來一塊兒,android 壓根就沒有一個比較清晰的mvc 模式的實現方法,自從fragment出現之後,把界面的渲染放到fragment 上面處理之後,就能夠很好的控制整個mvc 的模式.因爲,oschina 當前版本沒有用到不是很新的fragment的技術, 若是,想要統一手機和平板的體驗,除非額外在作多一個android 平板專版,可是,這樣就不符合我對android的設計觀,在我看來,一個android程序原本就應該可以自動適應手機和平板,並且,google 官方的app 也很好的體現出了一點,接下來,就是要把當前的oschina 進行fragment 化.git
幸運的是oschina的設計十分清晰,這對於fragment化有很好的幫助,首先,咱們看下oschina 的客戶端是如何進行,視圖,數據的處理github
###Main.java### 源碼傳送門 https://github.com/oschina/android-app/blob/master/src/net/oschina/app/ui/Main.javamvc
雖然這個類代碼不少,可是邏輯很清晰,咱們從 391 行開始看起,總的來講,能夠概括成如下圖形:以app
###新聞資訊爲例### ui
雖然,代碼不少可是都是些迭代剛纔步驟的代碼而已.google
接着咱們瞭解oschina 客戶端的結構之後,如何下手DIY呢?設計
首先,我已經相信了已經各位很是熟悉剛纔我說的那些東西了,接下來,咱們只須要找到咱們想DIY的部分,進行一個粗暴的複製粘貼!ctrl+ o 而後定位上圖所示的方法上,複製,而後,找個地方粘貼! ok 就是這麼簡單....好吧...我認可簡單過頭了...不過的確也是這麼簡單,我就是這個步驟實現了新聞資訊的手機平板自適應顯示,效果上一篇有截圖爲例!圖片
好了,這個坑就填到這裏吧,把原理搞清楚之後就是,剩下的其實就是不斷的複製和粘貼...下次,咱們講講如何fragment 化,讓oschina DIY 進入人人化...仍是那句不要指望太大...順便小聲的說一下,若是這篇文章對你有所幫助,而你恰好又有15積分,不妨頂一下,支持一下做者..頂頂不扣分哦!