flutter屏幕适配 ,一种一劳永逸的全局适配方式

flutter 屏幕适配 demo main

一种一劳永逸的全局适配方式git

效果

320x480
github


1080x1920

原理 (具体代码 main

1.更改配置的 ViewConfiguration 的size和devicePixelRatio (ViewConfiguration 这个类再 RenderView 里赋值,而RenderView是 renderObject树的根,在布局和绘制的过程当中,会根据ViewConfiguration的值来作由父向子的布局绘制操做)
2.PointerDataPacket 从引擎冲过来的事件,默认采用的是 系统的devicePixelRatio ,这里就须要适用咱们的值 复写 initInstances() 内部 ui.window.onPointerDataPacket=_handlePointerDataPacket 赋值如下bash

void _handlePointerDataPacket(ui.PointerDataPacket packet) {
    _pendingPointerEvents.addAll(PointerEventConverter.expand(
        packet.data,
        // 适配事件的转换比率,采用咱们修改的
        getAdapterRatio()));
    if (!locked) _flushPointerEventQueue();
  }
复制代码
相关文章
相关标签/搜索