- 博客(5)
- 收藏
- 关注
原创 LiveData“数据倒灌“解决方案
前言 最近在项目中通过LiveData订阅首页数据和加载更多数据,正常情况下没啥问题,结果当我点击了旋转噩梦开始了 样例说明 两个接口,一个用于加载首页,一个用于上拉加载,分别通过两个不同的livedata进行订阅,添加数据到同一个RecyclerView中 加载一次首页后上拉一次 正常情况 旋转后 上面日志可以看出,加载首页有25条数据,上拉加载增加了20条,一共45条数据显示正常,但是旋转后发生了出人意料的情况界面出现了65条数据, 除去我们正常显示的45条,追加了重复的最后20条数
2021-07-30 02:05:37
2716
原创 maven私服搭建
maven私服搭建 项目管理工具,管理共享库和插件 Mac下环境搭建 下载mac版本的nexus(链接)软件,并解压 2. 切换/nexus-3.18.1-01-mac/nexus-3.18.1-01/bin目录,启动服务 ./nexus start 注意mac下前面需要加上./ <可执行程序>表示运行该程序 服务启动成功后,浏览器访问 http://127.0.0.1:8081/,并登录 账号默认为admin 默认密码在admin.password文件里面,第一次登录会要求修改密码
2020-07-01 16:12:47
210
原创 ViewGroup绘制流程-测量和布局
ViewGroup绘制流程-测量和布局 绘制流程 分三步: onMeasure(): 测量当前控件的大小,在正式布局时提供建议(注意:只是建议,用不用要看onLayout函数) onLayout():对子控件进行布局 onDraw():根据布局位置绘图 onMeasure() void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 注意参数widthMeasureSpec和heightMeasureSpec,他们实际是MeasureS
2020-06-23 20:05:16
1058
原创 byte[]和int相关知识点
最近在项目中遇到了不太理解的地方,这里总结一下 问题 为什么int转byte可能是个负数 &0xff的作用 byte和int是怎么相互转化的 基础 在解释问题之前,了解一些计算机基础是很重要的 原码,反码,补码 数 原码 反码 补码 +1 0000 0001 0000 0001 0000 0001 -1 1000 0001 1111 1110 1111 1111 ...
2020-03-18 16:20:28
1043
原创 Android底部弹窗实现
Android底部弹窗再一次需求中,使用到了底部弹窗,这里就给大家总结一下,我用到的主要有两种 基于Dialog实现 基于PopupWindow实现 Dialog方式老规矩,直接上代码: Dialog dialog = new Dialog(getContext(), R.style.BottomDialogTheme); //获得dialog的window窗口 Window
2017-02-16 16:14:17
1604
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅