Flutter系列之Container宽度自适应
Container是flutter开发中最常用的组件,它有以下特点:
1. 当Container没有child组件的时候,Container的宽高默认占满父控件,也就是全屏
2.当Container有child组件的时候,宽高以child组件的宽高同等大小,也就是wrap_content
当Container的child组件为Row或者Column的时候,要为主轴添加 MainAxisSize.min,否则Container在主轴上是铺满的。
Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Container自适应'),),body: Center(child: Container(color: Colors.white,child: Row(mainAxisSize: MainAxisSize.min,children: <Widget>[Image.asset('images/test_teacher1.png', width: 22, height: 22),Text('小天使:', style: TextStyle(color: Colors.grey, fontSize: 14)),Text('陪你去看流星雨', style: TextStyle(color: Colors.black, fontSize: 14))],),),),);}
如果把这个Container放到ListView中,这个MainAxisSize.min是不起作用的,依然是占满屏幕宽度,请看代码
Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Container自适应'),),body: ListView.separated(itemBuilder: (context, index) {return Container(constraints: BoxConstraints(minHeight: 50),decoration: BoxDecoration(color: Colors.white,borderRadius: BorderRadius.all(Radius.circular(15)),),child: Row(mainAxisSize: MainAxisSize.min,children: <Widget>[Image.asset('images/test_teacher1.png', width: 22, height: 22),Text('小天使:', style: TextStyle(color: Colors.grey, fontSize: 14)),Text('陪你去看流星雨', style: TextStyle(color: Colors.black, fontSize: 14))],),);},separatorBuilder: (context, index){return Divider(height: 10,);},itemCount: 5),);}
运行之后的效果是这样子的:
怎么样让它自适应wrap_content,而不是占满屏幕宽度呢?
答案是在Container外层再套一个Row组件,然后再设置一个 mainAxisSize: MainAxisSize.min
代码如下:
Widget build(BuildContext context) {return Scaffold(appBar: AppBar(title: Text('Container自适应'),),body: ListView.separated(itemBuilder: (context, index) {return Row(mainAxisSize: MainAxisSize.min,children: <Widget>[Container(constraints: BoxConstraints(minHeight: 50),decoration: BoxDecoration(color: Colors.white,borderRadius: BorderRadius.all(Radius.circular(15)),),child: Row(mainAxisSize: MainAxisSize.min,children: <Widget>[Image.asset('images/test_teacher1.png', width: 22, height: 22),Text('小天使:', style: TextStyle(color: Colors.grey, fontSize: 14)),Text('陪你去看流星雨', style: TextStyle(color: Colors.black, fontSize: 14))],),)],);},separatorBuilder: (context, index){return Divider(height: 10,);},itemCount: 5),);}
改完之后,效果如下图所示:
Flutter系列之Container宽度自适应相关推荐
- 【Echart系列1—— 横轴文字格式化、图表宽度自适应问题】
X轴常见格式化问题 在日常开发中用Echart.js绘制图表时经常会碰到需要修改X轴显示文字格式的情况,通常有以下几种类型: ① 文字竖向排列,如下图 关键代码如下: xAxis: {type: 'c ...
- css实现左侧宽度自适应,右侧固定宽度
页面布局中经常用会遇到左侧宽度自适应,右侧固定宽度,或者左侧宽度固定,右侧自适应.总之就是一边固定宽度,一边自适应宽度. 一般固定宽度是导航栏,自适应宽度的是主体内容显示区. 所以要实现这种布局,就先 ...
- html笔记(二)html4+css2.0(元素类型、css精灵、宽度自适应、BFC、浏览器相关概述、css统筹)
大标题 小节 一.元素类型 1. 元素分类 2. 置换和非置换元素 3. 元素类型转换 二.css精灵 三.宽高自适应 1. 宽度自适应 2. 高度自适应 3. 最小高度自适应 4. 高度塌陷及解决办 ...
- 左右侧边栏固定宽,中间宽度自适应
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- uniapp 视频图片切换,视频高度宽度自适应
uniapp 视频 图片预览 视频宽度自适应, 视频图片左右切换, 图片点击放大预览 <template><view class="container">& ...
- 微信小程序 - 富文本图片宽度自适应(正则)
引言:在微信小程序里,比如商品展示页面的商品详情会有图片展示,PC端设置的商品详情是PC端的宽度,所以在小程序里图片会显示不全,这时就应该做相应的处理,使小程序里图片显示正确 思路 把图片的宽度改为手 ...
- 模拟宽度自适应的输入框
看代码: !DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=& ...
- xHTML+div布局:三个div,两边div宽度固定,中间div宽度自适应
xHTML+div经常考题:三个div,两边div宽度固定,中间div宽度自适应. 和大家分享一个实现方式: 1.html代码 1 <div class="dyleft"&g ...
- html设置box设置长度自适应,CSS实现宽度自适应宽高16:9的矩形的示例
前面我们讲了怎么做一个自适应宽高1:1的正方形 现在我们来讲讲做自适应16:9的矩形要怎么做 第一步先计算高度,假设宽100%,那么高为h=9/16=56.25% 第二步利用之前所说设置padding ...
最新文章
- 【干货书】深度学习合成数据
- 使用英伟达NeMo让你的文字会说话,零基础即可实现自然语音生成任务 | 附代码...
- 通用求根算法zeroin_Modern Robotics运动学数值解法及SVD算法(C matlab)
- QT计算器功能的实现
- python消息队列celery高可用_分布式消息队列-Celery
- 【鬼网络】之部署YUM仓库大全
- mysql 分库分表 后怎么操作,MySQL要分表分库怎么进行数据切分?
- PHP+sqlsrv的分页实现
- MongoDB学习笔记一:MongoDB的下载和安装
- HTML自动刷新页面
- python自动化办公入门书籍-盘点使用Python进行自动化办公所需要的知识点
- CppUnit快速入门
- 离散数学及其应用 (第2版)
- c语言铺地板,【北理乐学】铺地板
- python 有限域函数库_有限域:计算矩阵的逆
- 2021SC@SDUSC Zxing开源代码(十三)Aztec二维码(二)
- 扒开思派健康招股书:大数据的面子,“卖药”的里子
- php storm官网,phpstorm官方版
- android百分比布局失效,Android Studio不能添加百分比布局的依赖,书和AS不一样,老报错,怎么弄?急~~~...
- AD 限定登录计算机,限制AD账户可以登录哪些计算机