ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android Jetpack架构开发组件化应用实战,ndk开发教程

2022-02-04 10:58:55  阅读:207  来源: 互联网

标签:ndk 封装 自定义 Jetpack 列表 Android 加载 页面


}

}

}

return insets;

}

复制代码

直接break了。所以我们也需要自定义一个view来重写dispatchApplyWindowInsets方法。具体也会在后续文章中进行讲解。

下面就简单介绍下各个Tab的技术要点。

首页

首页主要分为顶部Banner和底部的文章列表。列表使用Paging加载。 并且封装了AbsListFragment和AbsListViewModel来快速搭建列表页面。 AbsListFragment主要是封装了页面布局相关的元素。 AbsListViewModel主要是封装了paging的一些常用配置等信息。 通过上述两个封装我们在开发列表页面的时候只需要关系DataSource和adapter即可。

项目

项目Tab主要使用的是TabLayout和ViewPager2来配合实现联动。同样的ViewPager2的页面也是直接继承了AbsListFragment 来实现列表页面。

导航

导航页面主要分为顶部的搜索和底部的分类。点击搜索后打开新的页面。通过fragment来承载热门搜索和搜索返回结果。 底部的分类主要是通过RecyclerView+ViewPager2来实现的。通过设置ViewPager2的orientation为ORIENTATION_VERTICAL来实现列表滑动。

体系

通过自定义FlowLayout来实现Tag标签管理。并进一步封装TagFlowLayout并对外提供TagAdapter来加载数据。

所有的下拉刷新换个下拉加载都是通过SmartRefreshLayout来实现的。通过阅读Paging源码我们了解到当请求数据返回空数据的时候,那么Paging就 不会继续帮我们来做分页加载了,默认会认为数据已经加载结束了。这个逻辑在实际开发中是有些问题的。所以就需要我们来返回空数据的时候手动来加载 分页逻辑。这里是通过自定义DataSource来完成。其实Paging框架只提供了加载数据的方式,在增加或者删除的逻辑目前都是不不支持的。这些都可以通过自定义 DataSource来完成。具体也会在后续文章中进行讲解。

网络请求


主要还是通过Retrofit+协程来完成。整个应用的数据流向架构为:

目前还未加缓存功能,后续会通过room来实现缓存功能。

组件通信


《960全网最全Android开发笔记》

《379页Android开发面试宝典》

《507页Android开发相关源码解析》

7DDRby-1643943280908)]

《507页Android开发相关源码解析》

[外链图片转存中…(img-82J1I6tA-1643943280909)]

因为文件太多,全部展示会影响篇幅,暂时就先列举这些部分截图,大家可以**点击这里**自行领取。

标签:ndk,封装,自定义,Jetpack,列表,Android,加载,页面
来源: https://blog.csdn.net/wa2231a/article/details/122781681

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有