通过ConcatAdapter实现单RecyclerView不同的效果

之前介绍了通过多ViewHolder实现单列表不同的效果,这次我们通过另一个方法实现同样的效果,那就是RecyclerView 1.2.0版本推出的ConcatAdapter 适配器。什么是ConcatAdapter?ConcatAdapter是RecyclerView 1.2.0版本推出的新适配器

萌萌の初音 发布于 2022-09-14

通过多ViewHolder实现单列表不同的效果

如果用NestedScrollView来实现以上效果,就会出现瀑布流RecyclerView无限加载数据导致ANR,手动控制数据加载也可以,但会导致刷新列表时卡顿,这个卡顿会在数据加载越多而明显,因为瀑布流的Adapter不会再回收Item了,所以用户体验非常不好;这个时候我们就可以通过单RecyclerView+多ViewHolder来实现,由Adapter自己进行ViewHolder的回收。

萌萌の初音 发布于 2022-08-30

Kotlin Flow的简单使用(含StateFlow)

kotlin flow介绍flow基于kotlin携程;使用方式类似于RxJava但更简单;flow可以转换成LiveData;结合协程的作用域,避免内存泄漏...

萌萌の初音 发布于 2022-07-05

SavedStateHandle的简单使用

SavedStateHandle简介SavedStateHandle搭配ViewModel作为状态保存使用,ViewModel虽然也保存了状态,但仅限于屏幕旋转等资源配置变更导致Activity和Fragment销毁,如果是系统kill导致的销毁无法还原,SavedStateHandle就可以对V

萌萌の初音 发布于 2022-05-19

Jetpack paging3的使用

1. paging3相关依赖的引入:ext { room_version = "2.4.2" paging_version = "3.1.1" lifecycle_version = "2.4.1"}dependencie

萌萌の初音 发布于 2022-05-16

SurfaceView的简单实现

SurfaceView介绍在Android中更新UI必须保证操作都在主线程中,如果画面经常刷新变动就会导致主线程阻塞,影响用户体验或更严重的ANR,这时就需要使用SurfaceView进行处理。SurfaceView可以另起一个线程单独进行画面更新的,通过对cavans进行绘制来实现画面显示,在重复

萌萌の初音 发布于 2022-05-13

Android10外部储存权限补充

前情提要:在Android 10以上文件读取受限的解决方案文章中,通过Uri等形式进行文件读写,但对使用Environment类公共目录的读写不是很友好,并且第三方需要对我们的文件读取造成一定的麻烦。方案一:Environment实现在AndroidManifest.xml中加入<uses-p

萌萌の初音 发布于 2022-04-26

Flutter插件实现AndroidView

使用flutter难免会借助原生view实现相关功能,直接在项目的FlutterActivity中实现不利于管理和组件化的实现,以下通过flutter plugin进行实现进行记录。1. 新建flutter plugin项目以android studio为例,new -> new flutte

萌萌の初音 发布于 2022-04-26

kotlin的7种单例模式

接上个文章java的5种单例模式饿汉模式object TestDemo {}懒汉模式class TestDemo private constructor() { companion object { private var instance : TestDemo? = null

萌萌の初音 发布于 2022-03-21