更新日志
这里记录了
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扩展中的方法,现在推荐迁移到 Jetpack 的obtainStyledAttributeswithStyledAttributes View扩展新增updateMarginsRelative方法- 作废
Bitmap扩展中的方法,现在推荐迁移到 Jetpack 的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参数,你现在可以允许在非主线程中弹出ToastWindowFactory中的部分方法现在将不会再抛出异常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
重命名为SystemVersionAndroidVersion并新增 Android 15、16 以及 1-4.3 的版本常量,同时进行功能性调整重命名为SystemKindRomType并进行功能性调整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
