自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 从源码角度看ViewModel基本原理

先抛出问题:ViewModel为什么能够在activity发生配置变更时保留状态?直接看源码,看它是怎么拿到viewModel的,也就是viewModel从哪里来的,这里先拿activity中的viewModels来举例,fragment其实也是一样的:入参我们一般不传,所以先不看,默认是null,直接看最后,return了一个 :第一个入参是想要的viewModel类,后两个参数store和factory先忽略,有个印象即可;可以看到还实现了接口,为什么?因为我们一般使用方式是:,注意这里使用了by,

2023-04-24 21:51:19 186 2

原创 Kotlin高阶函数、扩展函数

首先理解一下函数类型这个东西,在kotlin中,函数和Int、String等一样,,也有相应的对象,意味着可以声明变量类型或者作为方法的参数/返回类型。函数类型和扩展函数不一样!扩展函数相当于只是在原有的类中新增了一个方法,ageage和普通方法的区别就是没有方法名,但是注意,它是一个,它不是一个函数!正是因为它是一个函数类型的对象,所以才可以被赋值给变量后者传参。age同时也意味着它不能作为顶层函数,也不能作为一个普通函数写在类里面,会报错的。age这里的::funcage。

2023-04-17 20:24:03 150

原创 Gradle 7发布开源项目到JitPack

然后等它编译完成,Log那里的图标是绿色的代表发布成功了,红色的代表有问题失败了,成功后会有依赖提示。将代码上传到github,新建一个release版本并发布,复制仓库地址,打开。如果没有问题的话会显示BUILD SUCCESSFUL。在下方会显示一个新的版本,点击Get it。

2023-04-15 18:20:10 142

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除