準備轉行Android秘症,做了一個 高仿的知乎日報客戶端 練手,目前完成了大部分基本功能歧蒋,記錄一下開發(fā)過程中學習的資料(文中大部分資料鏈接均來自簡友 G軍仔 同學的這篇 好文)及踩過的坑媒役,拿出來跟大家分享一下,要是能給大家?guī)硪恍椭扑玻疑罡袠s幸。Android開發(fā)的路程遙遠又艱辛涯捻,希望尋到有理想有毅力的同學組個隊浅妆,一起學習,一起進步汰瘫。
源碼鏈接
https://github.com/yiyibb/Zhihu
截圖
參考的項目
Elephant
這是一個非常優(yōu)秀的項目狂打,同樣是使用了如今的安卓開發(fā)三劍客的開源項目,參考了許多混弥,特此感謝趴乡。MVP
這是一個可以快速實現(xiàn)快捷開發(fā)的開源庫,支持直接引用實現(xiàn)快速 Material Design + MVP + Rxjava + Retrofit + Okhttp + Glide 開發(fā)蝗拿,其中核心庫封裝的非常好晾捏,有許多值得學習的地方,同樣了參考了許多哀托,感謝 north2016 大神的分享惦辛。baseAdapter
這是鴻洋大神封裝的一個萬能adapter,我項目中對于多個類型item的recyclerView的實現(xiàn)便是使用的該庫仓手,學習了很多胖齐,鴻洋大神的demo比較簡單,如果感覺理解困難的話可以看下AdapterDelelgates這個開源庫嗽冒,鴻洋大神也有提到呀伙。
Rxjava 相關資料
這部分內容實在是一言難以概括,網(wǎng)上流傳的相關文章數(shù)不勝數(shù)添坊,這里極力推薦一篇我認為最適合像我一樣的初學者刷上幾十遍的文章:
Retrofit2 相關資料
Retrofit是一個非常優(yōu)秀的網(wǎng)絡請求庫(廢話誰不知道/(ㄒoㄒ)/~~)剿另,使用起來非常簡單,這里放上Retrofit的官網(wǎng)以及Jake Wharton
大神的視頻介紹。
MVP
關于MVP相關的學習看下面這篇文章就夠了雨女,實戰(zhàn)可以參考谷歌官方放出的demo谚攒,在上文放出的兩個項目中也有很好的實現(xiàn)。
踩坑日記
資料放的差不多了氛堕,現(xiàn)在來說下踩過的坑馏臭,希望能夠幫助同樣遇到這些問題的人比我更快的解決問題。
Activity 切換 Fragment 時 toolbar 上的 item 顯示混亂
解決方法: 不要調用setSupportActionBar()
方法讼稚,toolbar 可以作為一個插件使用位喂,通過findViewById()
方法獲取后設置相應的item的visible屬性即可實現(xiàn)切換 Fragment 設置不同的 item 項。
toolbar menu 上自定義 item 的實現(xiàn)
解決方法:說到自定義肯定第一時間想到自己寫個menu布局文件乱灵,調用toolbar的inflateMenu()
方法來加載,其實不用這么麻煩七冲,MenuItem 有一個app:actionProviderClass
屬性痛倚,可以加載自定義的view。(但是寫下來好像也差不多麻煩 :-D)
日夜模式的切換
源碼中該功能只開了個頭澜躺,一開始參考的是簡友 D_clock愛吃蔥花 的 知乎和簡書的夜間模式實現(xiàn)套路這篇文章蝉稳,但是后來放棄了,因為當內容較多時需要修改太多的xml文件掘鄙,個人感覺有些麻煩耘戚,當然還是很佩服這樣的奇淫巧技。在此推薦另一位簡友 _SOLID 的文章 Android主題換膚 無縫切換 文中介紹了一種換膚框架的實現(xiàn)思路操漠,個人認為寫的極為友好收津,文中的方法個人認為是一勞永逸的。
感謝
再次感謝文中提到的所有大神的慷慨分享浊伙,本人腹中墨水有限撞秋,似有千言萬語要說,奈何筆下只字片語嚣鄙,權當記錄學習的點滴吻贿,歡迎拍磚,共同學習哑子。