目錄
一、簡介
二、特性
三、效果圖
四、推廣圖
五、下載
六、最后
簡介
多元化閱讀+深度閱讀,為用戶提供有價值的信息流,這是『多元日報』的定位和理念,產(chǎn)品從0到1的過程,學習了很多,收獲了很多,如無意外地將會持續(xù)維護下去,未來的日子會增加一些有意思的功能,敬請期待。
特性
1、Material Design設計風格
Toolbar、Snackbar、RecycleView、SwipeRefreshLayout、Activity跳轉(zhuǎn)動畫
2、MVP架構(gòu)+單Activity多Fragment模式
參考Googole MVP Demo加上自己的一些思考,搭建了一個屬于自己的項目架構(gòu),雖然不一定很準確無誤,但起碼是我目前水平所能做到比較滿意的了
項目結(jié)構(gòu)如下所示:

package_structure
- application :自定義的全局application類
- commom :公共類庫
- constants :常量類
- data : 數(shù)據(jù)源,包括本地和遠程
- network :網(wǎng)絡請求封裝,使用Retrofit+rxJava
- share :分享管理類
- utlis :常用工具類
- widgets :自定義的View,如TabLayout、RowView
- framework :全局框架,使用時必須繼承相關基類,如BaseActivity、BaseFragment、RxBus
- module :業(yè)務邏輯層,按照相關功能劃分模塊
- wxapi :微信分享回調(diào)所必須的集成類
3、首頁仿知乎上下滑動隱藏菜單欄
滑動隱藏頂部Toolbar這種效果網(wǎng)上大多數(shù)Demo都可以看到,但隱藏底部的Tab就需要用到自定義Behavior了,注意這個Behavior是依賴于AppBarLayout的,當AppBarLayout里的Toolbar發(fā)生位移的時候底部的Tab也跟隨著向下隱藏,在此附上自定義的TabBehavior:
public class TabBehavior extends CoordinatorLayout.Behavior<View> {
public TabBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean layoutDependsOn(CoordinatorLayout parent, View child, View dependency) {
return dependency instanceof AppBarLayout;
}
@Override
public boolean onDependentViewChanged(CoordinatorLayout parent, View child, View dependency) {
float translationY = Math.abs(dependency.getTop());
child.setTranslationY(translationY);
return true;
}
}
使用的時候引入這個Behavior即可
4、封裝底部Tab、常用RowView、PullRecycleView
底部Tab封裝成TabLayout,添加一個Tab幾行代碼搞定:
ArrayList<TabLayout.Tab> tabs = new ArrayList<>();
tabs.add(new TabLayout.Tab(R.drawable.ic_bottomtabbar_news, R.string.tab_news, NewsFragment.class));
tabs.add(new TabLayout.Tab(R.drawable.ic_bottomtabbar_wechat, R.string.tab_wechat, WechatFragment.class));
tabs.add(new TabLayout.Tab(R.drawable.ic_bottomtabbar_about, R.string.tab_about, AboutFragment.class));
mTabLayout.setUpData(tabs, this);
mTabLayout.setCurrentTab(0);
5、集成第三方:社會化分享、檢測更新、埋點統(tǒng)計
主要是用到了友盟社會化分享,Bugly異常上報與應用升級,LeanCloud用戶反饋這些SDK,基本沒有什么大的技術含量,照著文檔集成就Ok了
效果圖

demo
推廣圖

doingdaily_banner
下載
最后
開發(fā)的過程中曾遇到不少棘手的問題,參考閱讀過大神牛人們的文章,在此無法一一列出其名字,在此感謝他們的經(jīng)驗分享與開源。