首页 > 其他分享 >flutter多端适配

flutter多端适配

时间:2023-06-11 15:46:23浏览次数:33  
标签:多端 Container tablet color 适配 builder Colors context flutter

公司需要app能适配web端,而且样式得不一样,这时就需要 :

  1. pubspec.yaml引入库 responsive_builder。
  2. 代码引用 import 'package:responsive_builder/responsive_builder.dart';
  3. ResponsiveBuilder使用如下,可以根据参数sizingInformation的deviceScreenType属性来判断设备环境,返回不同容器
ResponsiveBuilder(
              builder: (context, sizingInformation) {
                if (sizingInformation.deviceScreenType ==
                    DeviceScreenType.desktop) {
                  return Container(
                    color: Colors.blue,
                    child: Text("desktop"), // pc端
                  );
                }

                if (sizingInformation.deviceScreenType ==
                    DeviceScreenType.tablet) {
                  return Container(
                    color: Colors.red,
                    child: Text("tablet"), //平板
                  );
                }

                if (sizingInformation.deviceScreenType ==
                    DeviceScreenType.watch) {
                  return Container(
                    color: Colors.yellow,
                    child: Text("watch"),  //手表
                  );
                }
                return Container(
                  color: Colors.green,
                  child: Text("mobile"),  // 手机端
                );
              },
            ),
                        ```
            
        以上代码,可以在不同尺寸的情况下,返回不同的Container.

 

在responsive_builder库中,它帮我们定义了widget wrapper包装类,我们只需要调用ScreenTypeLayout,然后在不同分类中传入对应的布局,就可以在不同机型上完成布局的适配,有两种方式,mobile为必传布局
// Construct and pass in a widget per screen type
ScreenTypeLayout(
  mobile: Container(color:Colors.blue)
  tablet: Container(color: Colors.yellow),
  desktop: Container(color: Colors.red),
  watch: Container(color: Colors.purple),
);

// Construct and pass in a widget builder per screen type
ScreenTypeLayout.builder(
  mobile: (BuildContext context) => Container(color:Colors.blue),
  tablet: (BuildContext context) => Container(color:Colors.yellow),
  desktop: (BuildContext context) => Container(color:Colors.red),
  watch: (BuildContext context) => Container(color:Colors.purple),
);

如果说,我们并不是需要修改布局,仅仅是布局相同只是有些尺寸在不同屏幕上不同,间距不同而已。这里也提供了方法。

Container(
  padding: EdgeInsets.all(getValueForScreenType<double>(
     context: context,
     mobile: 10,
     tablet: 30,
     desktop: 60,
   )
),
  child: Text('Best Responsive Package'),
)

 

标签:多端,Container,tablet,color,适配,builder,Colors,context,flutter
From: https://www.cnblogs.com/wxcbg/p/17473003.html

相关文章

  • Flutter之视频播放Chewie
    Chewie简介Chewie是一个用于在Flutter应用中展示视频的插件。它基于video_player插件构建,提供了更多的功能和自定义选项,使视频播放更加灵活和易用。Chewie的使用Chewie的主要特点和功能Chewie的主要特点和功能包括:自定义控件:Chewie提供了一个内置的视频控制栏,其中包含播放/......
  • 第7章 适配器模式(Adapter Pattern)
    适配器模式(AdapterPattern)——.NET设计模式系列之八Terrylee,2006年2月概述在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能......
  • golang实现设计模式之适配器模式-优缺点,适用场景
    适配器模式是一种结构型设计模式,它是通过接口转换,使得原先接口不被兼容的其他类可以一起工作。类型类结构型特点:-程序耦合性高-要求程序员对组件内部结构熟悉-应用相对少些类适配器模式可以用过继承的方式来实现。对象结构型特点:可重用性较差。对象适配器允许一......
  • 适配大屏方案
    根据尺寸适配<stylelang="scss">//适配大屏3840,可以是区间@mediascreenand(min-width:3840px){$oneVw:21.6;@functiongetvw($data){@return$data/$oneVw*1vh;}.main{height:getvw(480);}}</style> 根据宽高比例适配<sty......
  • linux环境下jenkins搭建过程+Flutter打包集成
    安装jenkins配置java环境,androidsdk环境,flutter环境配置flutter自动打包脚本安装jenkins1.下载jenkins安装包首先下载jenkins安装包,官网下载地址:https://www.jenkins.io/download/,如果嫌太慢可以使用镜像下载:http://mirrors.jenkins-ci.org/解压并安装jenkinsrpm-......
  • Java设计模式-适配器模式
    适配器模式(AdapterPattern)是一种常见的设计模式,它主要用于在不改变现有系统结构的情况下,将一个类的接口转换成客户端所期望的另一个接口。在本文中,我们将介绍适配器模式的基本概念、实现方法以及优缺点,并探讨适配器模式在Java编程语言中的具体应用。简介适配器模式是一种结构型......
  • flutter 的 in_app_web_view实现下载功能
    flutter与前端交互,利用in_app_web_view实现下载功能:首先下载库,终端输入flutterpubaddflutter_inappwebview之后导出import'package:flutter_inappwebview/flutter_inappwebview.dart';即可使用。创建in_app_web_view:InAppWebView(initialOptions:InA......
  • 微信H5适配 解决微信调整字体大小导致Html5页面混乱
    最近开发公众号遇到一个问题:iOS、Android加载页面,如果用户调整了微信自带的字体大小,那么我们的页面就会跟随调整字体大小,导致页面错乱无法适配。所以希望能够禁止微信的字体放大功能。找了一些方法总结如下:原理:阻止ios和安卓调整字体大小时候的事件,ios通过添加css属性,安卓通过......
  • 如何在Flutter中构建自定义Widget
    Flutter最近越来越流行。您可以使用它来构建可在MacOS、Windows和Linux上顺畅运行的复杂应用程序。但是构建这些应用程序并不总是一个简单的过程。您经常需要重构代码以保持应用程序的性能。一种这样的重构技术是提取重复的代码和组件并在多个地方重用它们。在本教程中,您......
  • c#正则表达式适配数学表达式(一)
    近日在做某项目时候,里面涉及到了与数学表达式有关的计算,为了高效的适配数学表达式现以正则表达式进行提取予以分享,若有需要的小伙伴可参考,具体如下:///<summary>///正则表达式助手///</summary>publicclassRegularHelper{///<summary>......