当前位置: 首页 > news >正文

保健品网站设计怎么做自我介绍网站

保健品网站设计,怎么做自我介绍网站,江苏网站推广公司,做网站首页cdr#x1f525; 英文单词FittedBox #x1f525; Fitted 通过有道翻译如下 #xff1a; Box 通过有道翻译如下 #xff1a; 对 FittedBox 的理解 我们可以将 FittedBox 理解为合适的盒子#xff0c;将其它布局放到FittedBox这样一个盒子中#xff0c;从而实现 盒子里面的… 英文单词FittedBox  Fitted 通过有道翻译如下   Box 通过有道翻译如下   对 FittedBox 的理解 我们可以将 FittedBox 理解为合适的盒子将其它布局放到FittedBox这样一个盒子中从而实现 盒子里面的子布局更好的放置。  参考 Flutter实战 空间适配FittedBox 为什么使用 FittedBox 使用 FittedBox 的原因 在开发的过程中经常会遇到子widget大小超过父widget大小的现象。子widget应该遵循父widget的约束如果子widget的原始大小超过了父原始视图的大小就需要进行相应的处理比如缩小、裁剪等。         如果父 widget 宽度固定高度不固定则默认情况下 Text 会在文本到达父组件宽度的时候换行。         如果我们想让 Text 文本在超过父组件的宽度时不要换行而是字体缩小这时候就需要用到 FittedBox 组件。          Text 文本溢出   Row(children: [Text(文本内容过长就超出屏幕宽度/ * 30,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),], ) Image 加载网络图片溢出  Row(children: [Image.network(https://www.2008php.com/2011_Website_appreciate/2011-03-28/20110328134546.jpg),], ) FittedBox 属性 final BoxFit  fit ; // 适配方式final AlignmentGeometry alignment ;// 对齐方式final Clip clipBehavior ;// 是否剪裁 BoxFit.none 显示屏幕范围宽度的内容, 超过屏幕范围的内容不显示 FittedBox(fit: BoxFit.none,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 7,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),) BoxFit.contain 文本所有内容都显示到屏幕范围内按字体大小进行缩小 FittedBox(fit: BoxFit.contain,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 7,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],), ) BoxFit.fitWidth / fitHeight 需要设置 FittedBox 的大小不然设置 BoxFit.fitWidth 和 BoxFit.fitHeight 无效。 当没有设置 FittedBox 大小时文本始终显示在屏幕的范围内填充屏幕宽度。 SizedBox(/*height: 20.w,width: double.infinity,*/child: FittedBox(fit: BoxFit.fitHeight,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),) SizedBox(/*height: 20.w,width: double.infinity,*/child: FittedBox(fit: BoxFit.fitWidth,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),) 当设置 FittedBox 大小时文本始终显示在屏幕的范围内如果是 BoxFit.fitWidth 以填充屏幕宽度的形式展示文本如果是 BoxFit.fitHeight 以填充屏幕高度的形式展示文本。 SizedBox(height: 50.w,width: double.infinity,child: FittedBox(fit: BoxFit.fitHeight,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),) SizedBox(height: 50.w,width: double.infinity,child: FittedBox(fit: BoxFit.fitWidth,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),) Boxfit.scaleDown 保证不超过 父 Widget的大小。如果字体原始的高度比父容器的高度小那么就按照父容器的高度进行缩小如果原始字体宽度比父容器的宽度小就按照父容器的宽度进行缩小。 SizedBox(height: 10.w,width: double.infinity,child: FittedBox(fit: BoxFit.scaleDown,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),) SizedBox(height: 40.w,width: double.infinity,child: FittedBox(fit: BoxFit.scaleDown,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),) Boxfit.fill 保证不超过 父 Widget的大小。如果字体原始的高度比父容器的高度小那么久拉伸字体高度到容器高度相反就压缩字体高度到父容器高度。 SizedBox(height: 140.w,width: double.infinity,child: FittedBox(fit: BoxFit.fill,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),)   SizedBox(height: 14.w,width: double.infinity,child: FittedBox(fit: BoxFit.fill,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),)   Boxfit.cover 内容按照原始尺寸填充父容器的宽或者高但可能会超过父容器的范围。 如果字体原始高度小于 父容器高度这时候就填充高度 可能会出现超过父容器范围的情况。 如果字体原始高度不小于 父容器高度这时候就填充宽度不会出现超过父容器的情况。 SizedBox(height: 80.w,width: double.infinity,child: FittedBox(fit: BoxFit.cover,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),) SizedBox(height: 2.w,width: double.infinity,child: FittedBox(fit: BoxFit.cover,child: Row(children: [Text(文本内容过长就超出屏幕宽度/ * 3,style: TextStyle(color: Colors.blue, fontSize: 60.sp),),],),),)   Clip.none 如果子Widget的高度超过父视图的高度不做裁剪那么高度就显示成子视图的高度。 Container(width: 160,height: 150,color: Colors.red,child: FittedBox(fit: BoxFit.fitWidth,clipBehavior: Clip.none,child: Container(width: 160, height: 200, color: Colors.blue),),) 剪切前 Clip.hardEdge 如果子Widget的高度超过父视图的高度就进行裁剪高度就显示成夫视图的高度。 Container(width: 160,height: 150,color: Colors.red,child: FittedBox(fit: BoxFit.fitWidth,clipBehavior: Clip.hardEdge,child: Container(width: 160, height: 200, color: Colors.blue),),) 剪切后  裁剪超范围区域 ClipRect(// 将超出子组件布局范围的绘制内容剪裁掉child: Container(width: 50,height: 50,color: Colors.red,child: FittedBox(fit: BoxFit.none,child: Container(width: 60, height: 70, color: Colors.blue),),),) 打印布局时的约束信息 class LayoutLogPrintT extends StatelessWidget {const LayoutLogPrint({Key? key,this.tag,required this.child,}) : super(key: key);final Widget child;final T? tag; //指定日志tagoverrideWidget build(BuildContext context) {return LayoutBuilder(builder: (_, constraints) {// assert在编译release版本时会被去除assert(() {if (kDebugMode) {print(${tag ?? key ?? child}: $constraints);}return true;}());return child;});} }Column(children: [wRow( 内容是否发生溢出/ ),FittedBox(child: wRow( 内容是否发生溢出/ )),].map((e) Padding(padding: const EdgeInsets.symmetric(vertical: 20),child: e,)).toList(),) // 直接使用RowWidget wRow(String text) {Widget child Text(text,style: const TextStyle(color: Colors.black, fontSize: 20.0),);child Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: [child, child, child],);return LayoutLogPrint(child: child);} I/flutter (13152): Row(direction: horizontal, mainAxisAlignment: spaceEvenly, crossAxisAlignment: center): BoxConstraints(0.0w392.7, 0.0hInfinity) I/flutter (13152): Row(direction: horizontal, mainAxisAlignment: spaceEvenly, crossAxisAlignment: center): BoxConstraints(unconstrained)使用FittedBox也发生溢出    class SingleLineFittedBox extends StatelessWidget {const SingleLineFittedBox({Key? key,this.child}) : super(key: key);final Widget? child;overrideWidget build(BuildContext context) {return LayoutBuilder(builder: (_, constraints) {return FittedBox(child: ConstrainedBox(constraints: constraints.copyWith(//让 maxWidth 使用屏幕宽度maxWidth: constraints.maxWidth),child: child,),);},);} }Column(children: [wRow( 内容是否发生溢出 ),SingleLineFittedBox(child: wRow( 内容是否发生溢出 )),wRow( 少内容 ),FittedBox(child: wRow( 内容太挤内容太挤内容太挤内容太挤内容太挤内容太挤内容太挤内容太挤内容太挤内容太挤 ),)].map((e) Padding(padding: const EdgeInsets.symmetric(vertical: 20),child: e,)).toList(),) // 直接使用RowWidget wRow(String text) {Widget child Text(text,style: const TextStyle(color: Colors.black, fontSize: 16.0),);child Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly,children: [child, child, child],);return child;} SingleLineFittedBox 中将传给 Row 的 maxWidth 置为屏幕宽度后效果和不加 SingleLineFittedBox 的效果是一样的。 解决方案 最小宽度minWidth约束指定为屏幕宽度  因为Row必须得遵守父组件的约束所以 Row 的宽度至少等于屏幕宽度所以就不会出现缩在一起的情况同时我们将 maxWidth 指定为无限大 (double.infinity)则就可以处理数字总长度超出屏幕宽度的情况。
http://www.pierceye.com/news/817005/

相关文章:

  • 青海网站制作多少钱做网站教程pdf
  • dw做网站背景音乐wordpress 获取当前文章id
  • 上海鹭城建设集团网站icp备案查询
  • 企业站用什么程序做网站深圳手机报价网站
  • 网站开发国外研究状况建设部相关网站
  • 租赁网站开发台州网站优化
  • 网站开发人员工工资网站开发一个支付功能要好多钱
  • 工程建设管理网站源码网站怎样做地理位置定位
  • 太仓公司网站建设电话网络公关名词解释
  • 江门网站建设策划什么是网络营销职能
  • 北京网站托管毕设做网站是不是太low
  • 企业网站建设费用属管理费用吗重庆网站建设制作设计公司哪家好
  • 深圳营销型网站需要多少钱做网站个体户经营范围
  • php 手机网站 上传图片晋州做网站的联系电话
  • 云天下网站建设做抖音seo排名软件是否合法
  • 网站开发合同管辖权异议龙岩网上办事大厅官网
  • 建网站费用明细海口建设网站
  • 网站页面设计说明怎么写影视小程序源码
  • 传媒网站制作网站申请建设
  • 前端做项目的网站新密市城乡建设局网站
  • 网站app建设方案智能外呼系统
  • 创建网站免费注册wordpress 熊掌号代码
  • 的广州建网站的公司黄山市网站建设
  • 做网站外包需要提供什么登录百度账号
  • 网站备案要买备案号西安鑫瀚通网站建设
  • 做网站的公司违约怎么处理免费免费网站模板
  • 动漫网站建设方案项目书目录做网站站长先把作息和身体搞好
  • 网站建设说明书网页制作成品图加代码
  • 中国网站设计师联盟福州网站大全
  • 香奈儿网站建设竞价培训