导图社区 Android架构组件
温故而知新,android架构组件知识归纳,学起来,up up up!!!
一张思维导图带你了解高性能开发的相关内容,包含布局优化、内存优化、网络、电量、多线程等,收藏下图了解吧!
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
架构组件
数据绑定
概述:把布局中的视图和数据对象绑定,在数据源发生更改时,自动刷新节目。
导入:在build.gradle的android标签底下加入dataBinding {enabled true}
使用
普通用法
<layout>标签:布局文件用layout标签包裹
<view>标签:layout标签底下只能有两个标签,其中一个为view标签,另外一个为视图根节点。
<variable name="" type="">定义需要绑定的数据
<import type=""> 导入需要使用的类,比如View类,用于指定visible
单向绑定:android:text="@{vm.text}"
proview窗口默认值:android:text="@{user.firstName, default=my_default}"
特殊用法
bitmap
特殊字符
小于号(<): <
于(&):&
LiveData
概述:一个有生命周期感知能力的,可观察的数据存储类
优势
可以感知生命周期。
在生命周期被摧毁后也会自我清理,不会导致内存泄漏。
界面组件只需要观察数据
生命周期再次变为活跃状态后,会及时收到最新的数据
共享资源
创建LiveData
LiveData一般定义在ViewModel中
val currentName :MutableLiveData<String> by lazy{MutableLiveData<String>()}
观察LiveData
一般来说,onCreate()时观察liveData的正确位置
确保onResume()不会进行冗余调用
确保生命周期变为活跃后,立刻有可以显示的数据
liveData的数据更新原则
只有数据变化,才会发给活跃的观察者
观察者从非活跃更给为活跃状态时也会收到更新
观察者第二次从非活跃状态更改为活跃状态后,只有从上次活跃状态以来的值发生了变化,才会收到更新
调用observe(LifecycleOwner owner, Observer<? super T> observer)方法,传入生命周期的Owner(即当前的Activity或Fragment)和observer实例
除非LiveData对象没有设置值,否则在调用observe()方法后,系统会立即调用onChanged()方法。
observeForever(@NonNull Observer<? super T> observer),永久观察,调用removeObserver()停止观察
更新LiveData
setValue():只能拿在主线程中调用此方法。否则请调用postValue()
postValue()
扩展LiveData
可以继承livedata,并且在onActive()或者onInactive()方法中写相应的代码,并且通过setValue()方法更新liveData的值。
LiveData间的依赖
一个LiveData可以依赖于另外一个liveData
Transformations类:转换LiveData
map()
ViewModel