flutter 屏幕适配 demo main
一种一劳永逸的全局适配方式
效果
320x480
1080x1920
原理 (具体代码 main)
1.更改配置的 ViewConfiguration 的size和devicePixelRatio (ViewConfiguration 这个类再 RenderView 里赋值,而RenderView是 renderObject树的根,在布局和绘制的过程中,会根据ViewConfiguration的值来做由父向子的布局绘制操作)
2.PointerDataPacket 从引擎冲过来的事件,默认采用的是 系统的devicePixelRatio ,这里就需要适用我们的值 复写 initInstances() 内部 ui.window.onPointerDataPacket=_handlePointerDataPacket 赋值以下
void _handlePointerDataPacket(ui.PointerDataPacket packet) { _pendingPointerEvents.addAll(PointerEventConverter.expand( packet.data, // 适配事件的转换比率,采用我们修改的 getAdapterRatio())); if (!locked) _flushPointerEventQueue(); }
关于Flutter的全部学习内容,我们这边都有系统的知识体系以及进阶视频资料,有需要的朋友可以加群免费领取安卓进阶视频教程,源码,面试资料,群内有大牛一起交流讨论技术;点击链接加入群聊【腾讯@Android高级架构】
(包括自定义控件、NDK、架构设计、混合式开发工程师(React native,Weex)、性能优化、完整商业项目开发等)