android

ViewBinding 和 DataBinding 都有什么区别

ViewBinding 和 DataBinding 都有什么区别。 ViewBinding: 仅仅支持绑定 View 不需要在布局文件中添加 layout 标签 需要在模块级 build.gradle 文件中添加 viewBinding = true 即可使用 效率高于 DataBinding,因为避免了与数据绑定相关的开销和性能问题 相比于 kotlin-android-extensions 插件避免了空异常 DataBinding: 包含了 ViewBinding 所有的功能 需要在模块级 build.gradle 文件内添加 dataBinding = true 并且需要在布局文件中添加 layout 标签才可以使用 支持 data 和 view 双向绑定 效率低于 ViewBinding,因为注释处理器会影响数据绑定的构建时间。 ViewBinding 可以实现的, DataBinding 都可以实现,但是 DataBinding 的性能低于 ViewBinding,DataBinding 和 ViewBinding 会为每个 XML 文件生成绑定类。   –   Activity, Fragment 使用viewbinding注意: Fragment中,onDestroyView时要将_binding置空,对于binding的操作时机靠自己保证,时序自己保证。  

databinding使用可能导致UI闪烁

  databinding使用的时候,直接在xml里面让数据变化驱动UI,如果UI是图片imageview的话,会导致界面闪烁。 避免方法: 在逻辑代码中根据data变化改变UI即可。

流式布局

1.Google官方出品 https://blog.csdn.net/weixin_39397471/article/details/90257522 2.第三方的配合recycleview使用 https://github.com/xiangcman/FlowLayoutManager 3.第三方自定义viewgroup com.nex3z:flow-layout

Dart可空声明和非空断言-kotlin

https://youkmi.blog.csdn.net/article/details/108728322?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7EPayColumn-1.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7EPayColumn-1.pc_relevant_paycolumn_v3&utm_relevant_index=1   可空声明 类型?变量名称      与kotlin一样 非空断言 变量名称!          kotlin是2个!!   初始化非空变量 required 关键字 或者参数加默认值, late final关键字也一样

添加flutter到已有工程

https://docs.flutter.dev/development/add-to-app/android/project-setup#add-the-flutter-module-as-a-dependency option 1: 打包flutter工程为aar倒入已有工程(方便没有dart-sdk的开发) Option A – Depend on the Android Archive (AAR) This option packages your Flutter library as a generic local Maven repository composed of AARs and POMs artifacts. This option allows your team to build the host app without installing the Flutter SDK. You can then distribute the artifacts from a local …

添加flutter到已有工程 Read More »

网络连接不了

使用阿里的: maven { url ‘http://maven.aliyun.com/nexus/content/repositories/google’ } maven { url ‘http://maven.aliyun.com/nexus/content/repositories/jcenter’ } maven { url ‘http://maven.aliyun.com/nexus/content/groups/public/’ } maven { url “https://jitpack.io” } mavenCentral() google()

Livedata基本原理和股票行情数据

UI作为lifecycleowner,datasource作为lifecycleobserver; 反之datasource发生变化则version++并且dispatch给active的UI;   UI和datasource可以是多对多; 基于上述原理,任意object实现lifecycleowner就能成为一个可观察生命周期对象; 任意object实现lifecycleobserver,并且实现以下功能:1.根据lifecycleowner生命周期变化处理是否发送数据。2.当lifecycleowner生命结束时解除观察绑定。 glide的生命周期管理lifecyclelistener,以及 eventbus的订阅管理注册都是类似原理和实现。 股票行情数据:Datasource变化后version自增长,但是没有history data概念,可以自定义value对象为(数组,链表,队列)来实现history data。 股票分时数据:每天交易时间为241分钟,value对象为数组[241]即可。 股票历史k线数据:链表或者arraylist都可以当value。  

Android Studio 一直卡在 Analyzing…

还以为自己电脑太落伍,差点买台新mac,省钱了。 android studio 打开java文件,一直卡在analyzing,代码解析不出来,配置的主题颜色不显示,不报错,包括编译时和运行时,也没有代码提示 解决:File–>settings–>Plugins–>Android ButterKnife Zelezny disenable ! Android ButterKnife Zelezny插件和android studio 4.X版本不兼容,禁用掉就可以了 对于项目中使用ButterKnife库的,这个插件只支持8.0以前的ButterKnife库,如果你的ButterKnife库版本是8.0之后的,这个插件对你来说毫无用处 作者:MrCoder_z 链接:https://www.jianshu.com/p/79ced5c3b167 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。