『多元日報』資訊閱讀客戶端

目錄

一、簡介

二、特性

三、效果圖

四、推廣圖

五、下載

六、最后

簡介

多元化閱讀+深度閱讀,為用戶提供有價值的信息流,這是『多元日報』的定位和理念,產(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)驗分享與開源。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,983評論 25 709
  • CoordinatorLayout與滾動的處理 CoordinatorLayout實現(xiàn)了多種Material De...
    cxm11閱讀 6,803評論 1 15
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 47,147評論 22 665
  • 前言### 最近一段時間經(jīng)常上知乎APP看各種神回復,發(fā)現(xiàn)其內(nèi)部的滑動動畫挺有意思,就研究了一下。并使用Coord...
    IAM四十二閱讀 8,205評論 20 51
  • 天高云輕細水流,老友攜手山間游。 野菜燉雞作佳肴,與君共進一杯酒。 花前樹下傾心談,憶起舊事喜伴憂。 人到中年何所...
    緣wxh閱讀 616評論 33 38

友情鏈接更多精彩內(nèi)容