flutter屏幕適配 ,一種一勞永逸的全局適配方式

flutter 屏幕適配 demo main

一種一勞永逸的全局適配方式

效果

320x480

webp

1080x1920


webp

原理 (具體代碼 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();
  }

webp

關於Flutter的全部學習內容,我們這邊都有系統的知識體系以及進階視頻資料,有需要的朋友可以加羣免費領取安卓進階視頻教程,源碼,面試資料,羣內有大牛一起交流討論技術;點擊鏈接加入羣聊【騰訊@Android高級架構】
(包括自定義控件、NDK、架構設計、混合式開發工程師(React native,Weex)、性能優化、完整商業項目開發等)

webp


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章