多元化阅读+深度阅读,为用户提供有价值的信息流,这是“多元日报”的定位和理念,产品从0到1的过程,学习很很多,收获了很多,如无意外地将会持续维护下去,未来的日子会增加一些有意思的功能,敬请期待。
特征1、MaterialDesig设计风格Toolbar、Sackbar、RecycleView、SwipeRefreshLayout、Activity跳转动画
2、MVP架构+单Activity多Fragmet模式参考GoogoleMVPDemo加上自己的一些思考,搭建了一个属于自己的项目架构,虽然不一定很准确无误,但起码是我目前水平所能做到比较满意的了
项目结构如下所示:
applicatio:自定义的全局applicatio类
commom:公共类库
costats:常量类
data:数据源,包括本地和远程
etwork:网络请求封装,使用Retrofit+rxJava
share:分享管理类
utlis:常用工具类
widgets:自定义的View,如TabLayout、RowView
framework:全局框架,使用时必须继承相关基类,如BaseActivity、BaseFragmet、RxBus
module:业务逻辑层,按照相关功能划分模块
wxapi:微信分享回调所必须的集成类
3、首页仿知乎上下滑动隐藏菜单栏滑动隐藏顶部Toolbar这种效果网上大多数Demo都可以看到,但隐藏底部的Tab就需要用到自定义Behavior了,注意这个Behavior是依赖于AppBarLayout的,当AppBarLayout里的Toolbar发生位移的时候底部的Tab也跟随着向下隐藏,在此附上自定义的TabBehavior:
public class TabBehavior exteds CoordiatorLayout.Behavior<View> { public TabBehavior(Cotext cotext, AttributeSet attrs) { super(cotext, attrs); } @Override public boolea layoutDepedsO(CoordiatorLayout paret, View child, View depedecy) { retur depedecy istaceof AppBarLayout; } @Override public boolea oDepedetViewChaged(CoordiatorLayout paret, View child, View depedecy) { float traslatioY = Math.abs(depedecy.getTop()); child.setTraslatioY(traslatioY); retur true; }}使用的时候引入这个Behavior即可
4、封装底部Tab、常用RowView、PullRecycleView等底部Tab封装成TabLayout,添加一个Tab几行代码搞定:
ArrayList<TabLayout.Tab> tabs = ew ArrayList<>(); tabs.add(ew TabLayout.Tab(R.drawable.ic_bottomtabbar_ews, R.strig.tab_ews, NewsFragmet.class)); tabs.add(ew TabLayout.Tab(R.drawable.ic_bottomtabbar_wechat, R.strig.tab_wechat, WechatFragmet.class)); tabs.add(ew TabLayout.Tab(R.drawable.ic_bottomtabbar_about, R.strig.tab_about, AboutFragmet.class)); mTabLayout.setUpData(tabs, this); mTabLayout.setCurretTab(0);5、集成第三方:社会化分享、检测更新、埋点统计主要是用到了友盟社会化分享,Bugly异常上报与应用升级,LeaCloud用户反馈这些SDK,基本没有什么大的技术含量,照着文档集成就Ok了
Baer








评论