AndroidAutoSize使用时遇到的特麻烦bug

前言

维护、迭代老项目时候遇到的事情。

makefile 复制代码
com.github.JessYanCoding:AndroidAutoSize

代码

kotlin 复制代码
AutoSizeConfig.getInstance()
            .setCustomFragment(false)
            .setExcludeFontScale(true)
            .setLog(false)
            .setBaseOnWidth(true)
            .setUseDeviceSize(false) //屏幕适配监听器
            .setOnAdaptListener(object : onAdaptListener {
                override fun onAdaptBefore(target: Any?, activity: Activity?) {
                  ScreenUtils.getScreenSize(activity) 的参数一定要不要传 Application!!!
                    AutoSizeConfig.getInstance().setScreenWidth(720)
                    AutoSizeConfig.getInstance().setScreenHeight(1080)
                }

配置了固定的尺寸。

adapter的数据加载异常

开始的时候没有理会,因为UI异常并不明显,实际是源代码的开发者,用了些邪法,让字体显示的位置比较固定,但实际的字体大小是不同的。

后来在增加新的显示UI时,就发现问题了。

我直接移除了邪法的控件设置,异常就特别的明显。

字体大小完全不同。

adapter下来刷新就出现问题。

特别是在表现上,从另一个Activity跳转回来,就会触发异常问题。

最后的解决

scss 复制代码
    /**
     * 重新设置AutoSize-density值
     * 否则,item会使用原屏幕的dpi值生成UI
     */
    private void resetDensity() {
        // 在刷新数据前先触发 AutoSize 适配,确保 RecyclerView 使用正确的 density
        AutoSizeConfig.getInstance().setScreenWidth(720);
        AutoSizeConfig.getInstance().setScreenHeight(1080);
        AutoSizeCompat.autoConvertDensityOfGlobal(getResources());
    }
    //刷新adapter
    productAdapter.setNewData(goodsDataLists, gridLayoutManager, id);

增加了如此的设置之后,adapter总算是没有发生UI显示的异常了。

相关推荐
用户479492835691516 分钟前
专升本前端毕业 1 年,从初创到大厂,我的开源项目上了 github trending,顺便聊聊做开源的收获
前端·后端·github
Ashley的成长之路20 分钟前
前端性能优化实战手册·第1篇:从 Lighthouse 60 到 95 的完整路径
前端·性能优化
思码梁田32 分钟前
CSS letter-spacing 属性详解:掌控字符之间的呼吸感
前端·css
大尚来也40 分钟前
React Hooks全解析:告别繁琐Class组件
前端·react.js·前端框架
不简说1 小时前
JS 代码技巧 vol.2 — 20 个数组/对象/字符串/正则的实用技巧
前端·javascript·面试
小小编程路1 小时前
C++ 块作用域详解:从基础到实战
前端·javascript·vue.js
虚惊一场1 小时前
MarkView:纯前端 Markdown 实时预览工具的架构设计
前端·javascript·vue.js
hunterandroid1 小时前
[鸿蒙从零到一] ArkUI 常用布局实战:Column、Row、Stack 与 Flex
前端
海上彼尚2 小时前
Nodejs也能写Agent - 17.LangGraph篇 - Checkpointer 与 Memory
前端·javascript·人工智能·langchain·node.js
盛夏绽放2 小时前
Hermes Agent 全栈安装、配置与Web端架构深度解析(官方命令版·最终优化)
前端·架构·hermes