高仿知乎日報 (Material Design + MVP + RxJava + Retrofit)

準備轉行Android,做了一個 高仿的知乎日報客戶端 練手,目前完成了大部分基本功能,記錄一下開發過程中學習的資料(文中大部分資料鏈接均來自簡友 G軍仔 同學的這篇 好文)及踩過的坑,拿出來跟大家分享一下,要是能給大家帶來一些幫助,我深感榮幸。Android開發的路程遙遠又艱辛,希望尋到有理想有毅力的同學組個隊,一起學習,一起進步。

源碼鏈接

https://github.com/yiyibb/Zhihu

截圖






參考的項目

  • Elephant
    這是一個非常優秀的項目,同樣是使用了如今的安卓開發三劍客的開源項目,參考了許多,特此感謝。

  • MVP
    這是一個可以快速實現快捷開發的開源庫,支持直接引用實現快速 Material Design + MVP + Rxjava + Retrofit + Okhttp + Glide 開發,其中核心庫封裝的非常好,有許多值得學習的地方,同樣了參考了許多,感謝 north2016 大神的分享。

  • baseAdapter
    這是鴻洋大神封裝的一個萬能adapter,我項目中對于多個類型item的recyclerView的實現便是使用的該庫,學習了很多,鴻洋大神的demo比較簡單,如果感覺理解困難的話可以看下AdapterDelelgates這個開源庫,鴻洋大神也有提到。

Rxjava 相關資料

這部分內容實在是一言難以概括,網上流傳的相關文章數不勝數,這里極力推薦一篇我認為最適合像我一樣的初學者刷上幾十遍的文章:

Retrofit2 相關資料

Retrofit是一個非常優秀的網絡請求庫(廢話誰不知道/(ㄒoㄒ)/~~),使用起來非常簡單,這里放上Retrofit的官網以及Jake Wharton大神的視頻介紹。

MVP

關于MVP相關的學習看下面這篇文章就夠了,實戰可以參考谷歌官方放出的demo,在上文放出的兩個項目中也有很好的實現。

踩坑日記

資料放的差不多了,現在來說下踩過的坑,希望能夠幫助同樣遇到這些問題的人比我更快的解決問題。

Activity 切換 Fragment 時 toolbar 上的 item 顯示混亂

解決方法: 不要調用setSupportActionBar()方法,toolbar 可以作為一個插件使用,通過findViewById()方法獲取后設置相應的item的visible屬性即可實現切換 Fragment 設置不同的 item 項。

toolbar menu 上自定義 item 的實現

解決方法:說到自定義肯定第一時間想到自己寫個menu布局文件,調用toolbar的inflateMenu()方法來加載,其實不用這么麻煩,MenuItem 有一個app:actionProviderClass屬性,可以加載自定義的view。(但是寫下來好像也差不多麻煩 :-D)

日夜模式的切換

源碼中該功能只開了個頭,一開始參考的是簡友 D_clock愛吃蔥花知乎和簡書的夜間模式實現套路這篇文章,但是后來放棄了,因為當內容較多時需要修改太多的xml文件,個人感覺有些麻煩,當然還是很佩服這樣的奇淫巧技。在此推薦另一位簡友 _SOLID 的文章 Android主題換膚 無縫切換 文中介紹了一種換膚框架的實現思路,個人認為寫的極為友好,文中的方法個人認為是一勞永逸的。

感謝

再次感謝文中提到的所有大神的慷慨分享,本人腹中墨水有限,似有千言萬語要說,奈何筆下只字片語,權當記錄學習的點滴,歡迎拍磚,共同學習。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,025評論 25 708
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,489評論 2 45
  • 很遺憾,今天的工作計劃沒有完成。然而,那就這樣吧,泰然處之,甚好。還好,今天的學習計劃和隨筆還是有機會完成的。 過...
    末行閱讀 237評論 2 0
  • 無聊翻知乎,突然看到八個字:心有猛虎,細嗅薔薇。意思是,老虎也會有細嗅薔薇的時候,忙碌而遠大的雄心也會被溫柔和...
    愛折騰的方丈閱讀 419評論 0 1
  • 青果果說閱讀 167評論 2 1