更新日志
这里记录了
BetterAndroid的版本更新历史。
特别注意
我们只会对最新的依赖进行维护,若你正在使用过时的依赖则代表你自愿放弃一切维护的可能性。
ui-component
1.0.8 | 2025.08.03 最新
- 移除适配器相关功能,统一合并至 ui-component-adapter
- 将 Java 反射相关行为由 YukiReflection 迁移至 KavaRef
1.0.7 | 2025.03.08 过旧
- 移除 Material 依赖并解构为对应依赖
- 大量重构适配器 (Adapter) 底层相关的 API
- 移除适配器不合理的 View实例装载条目方法
- 适配器加入 ViewHolderDelegate以支持自定义布局装载器
- AdapterPosition现已支持- layout和- absolute下标
- 其它适配器相关的已知问题修复
1.0.6 | 2025.01.25 过旧
- AppBindingActivity中新增- onPrepareContentView方法,可自定义装载布局前的操作
- 修复适配器构造器中可能出现数据集为空下标越界的问题
- RecyclerAdapterBuilder中新增- AdapterPosition实现动态下标功能
- 修复适配器构造器中使用布局 ID 装载时父布局提前装载造成的严重错误
- 新增自定义的 RecyclerView布局管理器并修改默认的布局管理器以实现在添加了自定义的头部和末位布局时正确处理下标
- 新增 RecyclerView.Adapter的wrapper扩展方法,通过包装实例实现在添加了自定义的头部和末位布局时正确处理下标
- 修复 RecyclerAdapterBuilder中末位布局当做头部布局添加的严重错误
1.0.5 | 2024.03.08 过旧
- 移除了所有扩展方法 kt文件的Factory后缀
- 移除了上一个版本中已作废的文件
- 修复 CommonAdapterBuilder中的onItemViewsClick、onItemViewsLongClick返回的下标和条目位置错误问题
- 调整适配器中添加的条目记录对象为 LinkedHashSet以防止重复添加
- 开放 RecyclerAdapterBuilder中的DEFAULT_VIEW_TYPE
- 适配器中新增 onBindItemId方法,可自定义getItemId的行为
- 适配器中现在允许无回调直接使用 onBindViews绑定条目布局
- RecyclerAdapterBuilder中新增- onBindHeaderView、- onBindFooterView方法
- 在 OnBackPressedCallback中调用trigger方法后若未移除则将重新启用此回调事件
1.0.4 | 2024.01.02 过旧
- SystemBarsController已完全迁移到 Window Insets API,请参考文档开始使用新用法
- 重构了 SystemBarsController并修改了初始化方法,请参考文档使用新的方式开始使用
- Window Insets 已从系统栏中完全分离为 WindowInsetsWrapper、InsetsWrapper、InsetsFactory
- 作废了全部有关系统栏中的 Window Insets 相关用法,现在请开始使用全新的 Window Insets API
- 重构了 BackPressedController并对接到BackPressedDispatcher,请参考文档开始使用新用法
- AppViewsFragment新增使用构造方法传入- layoutResId的装载布局方式
- 更名 RecyclerCosmeticMacker为RecyclerCosmetic并对相关功能进行了泛型处理
- 开放了 RecyclerView的预置装饰器,现在你可以手动创建它们
- 重构了大量有关适配器的功能,现在你可以使用每个适配器的同名方法手动进行创建 (BaseAdapter为CommonAdapter)
- 重构了通知相关功能,请参考文档开始使用新用法
- 进行了一些其它功能的更名和修改
1.0.3 | 2023.12.03 过旧
- SystemBarsController的- init方法新增- defaultPaddings参数,可以配置初始化时是否自动添加对应的系统栏边距
- 在 SystemBarsController中使用show或hide方法时将自动判断是否已经添加系统栏边距来决定是否添加对应的边距
- 新增 AppComponentActivity,继承于ComponentActivity,可适用于 Jetpack Compose,无需设置 AppCompat 主题
- 使用 AppBindingActivity、AppViewsActivity、AppComponentActivity时会自动将添加的布局背景颜色填充到父布局
1.0.2 | 2023.11.24 过旧
- 重构 SystemBarsController中的 System Insets 功能修复在 Compose View 上无法计算布局最大尺寸问题
- SystemBarsController中新增- SystemInsets.Paddings和- setBaseBackgroundResource、- isVisible功能
- 作废了 SystemBarsView,请开始使用新的方式自定义 System Insets 功能
- 新增 View.applySystemInsets、View.appendSystemInsets、View.removeSystemInsets方法
1.0.1 | 2023.11.18 过旧
- 修复 SystemBarsController中存在的装载异常捕获问题
1.0.0 | 2023.11.02 过旧
- 首个版本提交至 Maven
ui-component-adapter
1.0.0 | 2025.08.03 最新
- 首个版本提交至 Maven
ui-extension
1.0.7 | 2025.08.03 最新
- 移除 Adapter相关扩展,统一合并至 ui-component-adapter
- 将 Java 反射相关行为由 YukiReflection 迁移至 KavaRef
- Resources扩展中调整- isUiInNightMode底层逻辑对接到- isNightModeActive方法
- 作废 Resources扩展中的obtainStyledAttributeswithStyledAttributes
- View扩展新增- updateMarginsRelative方法
- 作废 Bitmap扩展中的zoomscale方法
- Bitmap扩展中对- round新增- backgroundColor参数
- 作废 Bitmap扩展中的compressshrink方法代替
1.0.6 | 2025.03.04 过旧
- 调整 LayoutInflater扩展中的inflate方法和attachToParent参数的默认行为
- 修正 View扩展中的updateMarginupdateMargins并添加setMargins方法
- 完全移除旧版 ViewLayoutParams类,现在请使用ViewLayoutParams方法代替
- 修复 ViewLayoutParams相关逻辑,现在它可以创建任意基于ViewGroup.LayoutParams的对象
- 重载 ViewLayoutParams方法以支持直接传入lpClass参数
1.0.5 | 2025.01.25 过旧
- 修复 TextView扩展中的updateText方法可能在重写了setText方法后设置的文本光标下标越界的问题
- 修改 TextView扩展中setDigits方法的inputType参数默认从TextView自身读取
- 修改 TextView扩展中updateTypeface方法的tf参数默认为null,防止设置非预期的字体样式
- TextView扩展中新增- textToString、- hintToString方法
- 修复 Toast扩展中非主线程可能导致无法弹出Toast的问题
- Fragment扩展中新增- parentFragment泛型方法
- Activity扩展中- startActivity方法新增- options参数
- 新增 LifecycleOwner扩展
- 新增 Coroutines协程功能相关扩展
- View扩展中新增- setIntervalOnClickListener方法
- View扩展中新增- child、- childOrNull、- firstChild、- firstChildOrNull、- lastChild、- lastChildOrNull非泛型实现方法
- 修正 Resources中的方法命名isThemeAttrsIdsValueEqualsareThemeAttrsIdsValueEquals
- Resources扩展中新增大量针对- TypedArray的扩展方法
- ⚠️ 破坏性更新,大量重构 Fragment扩展中的方法,并独立出FragmentTransaction方法,迁移可能需要成本
- Bitmap扩展中新增- FileDescriptor.decodeToBitmap和- FileDescriptor.decodeToBitmapOrNull方法
- 新增 RecyclerView扩展
- View扩展中新增- tag、- setTag、- animate方法
- View扩展中新增- tooltipTextCompat方法
- ViewBindingBuilder中的- toString方法现在将返回- ViewBinding所持有的完整对象名称
- 新增 Adapter扩展
1.0.4 | 2024.05.05 过旧
- 整合 Fragment扩展中的进入、退出动画方法参数
- 移除默认的 Fragment扩展中的过渡动画,并删除相关资源文件
- ViewBinding扩展中新增- Fragment.viewBinding方法
- 修复 ViewBinding扩展中viewBinding装载的布局不会自动缓存的问题
- 修复 ViewBinding扩展中inflate方法遇到<merge>和<include>类型布局不能正确装载的问题
- 调整 ViewBinding扩展中inflate方法遇到<merge>和<include>类型布局将忽略attachToParent参数
- 移除旧版 ViewBinding扩展中已弃用的全部方法
1.0.3 | 2024.03.08 过旧
- 移除了所有扩展方法 kt文件的Factory后缀
- 移除了上一个版本中已作废的文件
- ViewFactory的- ViewLayoutParams方法新增支持- AbsListView.LayoutParams类型
- ViewFactory中新增- updateCompoundDrawables、- updateCompoundDrawablesWithIntrinsicBounds方法
- ViewFactory中新增- parent、- parentOrNull方法
- ViewFactory中新增- walkToRoot、- walkThroughChildren、- indexOfInParent方法
- ViewFactory中新增- child、- childOrNull、- firstChild、- lastChild、- firstChildOrNull、- lastChildOrNull方法
- 合并 ViewFactory中的inflate方法到LayoutInflaterFactory中并作废原方法
- FragmentFactory中的添加方法新增- addToBackStack参数
- FragmentFactory中作废了- commitTransaction方法,现已迁移到官方提供的- fragment-ktx依赖
- ResourcesFactory中新增- themeResId方法
- 新增全新的 ViewBinding解决方案并弃用旧版方案
1.0.2 | 2024.01.02 过旧
- 移动了部分不规范分类的包名,如遇到报错,请重新对这些调用的方法进行 import操作
- 修改了针对 Java 调用的相关名称
- ViewFactory中新增可设置横向纵向的- updatePadding方法
- ViewFactory中的- inflate方法将自动使用- Activity.getLayoutInflater
- 更名 ColorsFactory为ColorFactory
- 更名 ColorFactory中的toMixColor为mixColorOf
- ColorFactory中的部分方法现在将不会再抛出异常
- 新增 GradientDrawableCompat,你可以使用其创建 Android 10 以下版本的GradientDrawable
- DrawableFactory中新增可设置横向纵向的- updatePadding方法
- 作废了 DimensionFactory中的asDp、asPx及其用法因为它设计错误,现已对接到新用法toDp、toPx
- 新增 DisplayDensity,你可以方便地使用dp、px来转换单位
- 作废了 ResourcesFactory中的getDimensionPx,请手动使用toPx进行计算
- 作废了 ResourcesFactory及ActivityFactory中的isSpecialWindowingMode,请不要再使用
- ResourcesFactory中新增- getFontCompat方法
- 修复了 FragmentFactory中的commt相关功能用法错误
- 大量修改了 FragmentFactory中的相关用法,现在请参考文档开始使用新用法
- BitmapFactory中新增- compressBitmap方法
- ToastFactory中新增- Window.toast方法
- ToastFactory中的- toast方法新增- allowBackgroud参数,你现在可以允许在非主线程中弹出- Toast
- WindowFactory中的部分方法现在将不会再抛出异常
- WindowFactory中新增可使用- Float类型设置屏幕亮度的方法
- ViewFactory中使用- WindowInsetsController来显示或隐藏输入法并更名方法为- showIme、- hideIme
- 作废了 ViewLayoutParam类,现在请使用ViewLayoutParams方法代替
- ViewFactory中的- performKeyPressed新增- duration参数
- ViewFactory中新增可设置横向纵向的- updateMargin方法
- 对 ActivityFactory中的方法进行了inline处理
- ActivityFactory中新增每个- startActivityOrElse方法
- BimapFactory中的- round方法新增支持设置每个方向的圆角半径大小
1.0.1 | 2023.11.18 过旧
- 修复 ResourcesFactory 中 getColor与getColorStateList方法返回值错误问题
1.0.0 | 2023.11.02 过旧
- 首个版本提交至 Maven
system-extension
1.0.3 | 2025.08.03 最新
- 将 Java 反射相关行为由 YukiReflection 迁移至 KavaRef
- SystemVersion- AndroidVersion并新增 Android 15、16 以及 1-4.3 的版本常量,同时进行功能性调整
- SystemKind- RomType并进行功能性调整
- Broadcast扩展中新增- sendBroadcast方法的- options参数
1.0.2 | 2025.01.25 过旧
- Broadcast扩展中新增- BroadcastReceiver方法并修改- registerReceiver方法的返回值为其自身
1.0.1 | 2024.01.02 过旧
- 更名 SystemVersion中的部分命名不正确方法
- SystemVersion中新增- name属性
- 缓存 SystemKind的检测结果防止重复创建反射对象
- 作废了 SystemKind中的get,现在请使用current属性获取当前系统类型
- 更名 ApplicationFactoy中的部分命名不正确方法和类
- 移除了 AplicationInfoFlagsWrapper中的FLAG前缀
- 修改了 BroadcastFactory中的相关用法,现在请参考文档使用新用法创建运行时广播
- 修改了 ClipboardFactory中的相关用法,现在请参考文档使用新用法使用剪贴板功能
- 对 ServiceFactory中的方法进行了inline处理
- ServiceFactory中新增- startServiceOrElse、- startForegroundServiceOrElse方法
1.0.0 | 2023.11.02 过旧
- 首个版本提交至 Maven
permission-extension
暂未发布。
compose-extension
1.0.2 | 2024.01.16 最新
- 新增 HapticFeedback方法,你可以将其设置到任意的点击、触摸事件上
- ComponentPadding新增- None方法,你可以使用其直接得到- ComponentPadding(0.dp)
- 修改了 Dialog中的onDismissRequest为强制要求存在,匹配官方提供的foundation中的用法
- 部分代码风格优化
1.0.1 | 2024.01.08 过旧
- 移除部分无用的 @Stable注解
- 新增 borderOrElse的同名方法和新用法
- 新增 AdaptiveRow、AdaptiveColumn
1.0.0 | 2024.01.02 过旧
- 首个版本提交至 Maven
compose-multiplatform
0.1.0 | 2024.01.02 最新
- 首个版本提交至 Maven
