1. import 'package:flutter/material.dart';
  2.  
  3. void main(){
  4. runApp(MyApp());
  5. }
  6.  
  7. class MyApp extends StatelessWidget{
  8. @override
  9. Widget build(BuildContext context) {
  10. // TODO: implement build
  11. return MaterialApp(
  12. home:Scaffold(
  13. appBar: AppBar(
  14. title:Text("flutter demo")
  15. ),
  16. body:HomeContent()
  17. )
  18. );
  19. }
  20. }
  21.  
  22. class HomeContent extends StatelessWidget{
  23. @override
  24. Widget build(BuildContext context) {
  25. // TODO: implement build
  26. return Center(
  27. child: Container(
  28. child: Text(
  29. 'hello world 学无止境的最高境界!!!',
  30. textAlign:TextAlign.left,
  31. overflow:TextOverflow.ellipsis ,
  32. // overflow:TextOverflow.fade ,
  33. maxLines: 1,
  34. textScaleFactor: 1.8,
  35. style:TextStyle(
  36. fontSize: 16.0,
  37. color:Colors.red,
  38. // color:Color.fromARGB(a, r, g, b)
  39. fontWeight: FontWeight.w800,
  40. fontStyle: FontStyle.italic,
  41. decoration:TextDecoration.lineThrough,
  42. decorationColor:Colors.white,
  43. decorationStyle: TextDecorationStyle.dashed,
  44. letterSpacing: 5.0
  45.  
  46. )
  47.  
  48. ),
  49. height: 300.0,
  50. width: 300.0,
  51. decoration: BoxDecoration(
  52. color: Colors.yellow,
  53. border: Border.all(
  54. color: Colors.blue,
  55. width: 2.0
  56. ),
  57. borderRadius: BorderRadius.all(
  58. // Radius.circular(150), //圆形
  59. Radius.circular(10),
  60. )
  61. ),
  62. // padding:EdgeInsets.all(20),
  63.  
  64. // padding:EdgeInsets.fromLTRB(10, 30, 5, 0)
  65.  
  66. margin: EdgeInsets.fromLTRB(10, 30, 5, 0),
  67.  
  68. // transform:Matrix4.translationValues(100,0,0)
  69.  
  70. // transform:Matrix4.rotationZ(0.3)
  71.  
  72. // transform:Matrix4.diagonal3Values(1.2, 1, 1)
  73.  
  74. alignment: Alignment.bottomLeft,
  75.  
  76. ),
  77. );
  78. }
  79.  
  80. }

Flutter Text 组件

TextAlign属性

TextAlign属性就是文本的对齐方式,它的属性值有如下:

  • center: 文本以居中形式对齐,这个也算比较常用的了。
  • left:左对齐,经常使用,让文本居左进行对齐,效果和start一样。
  • right :右对齐,使用频率也不算高。
  • start:以开始位置进行对齐,类似于左对齐。
  • end: 以为本结尾处进行对齐,不常用。有点类似右对齐.
  • justfy 两端对齐

最常用的三个:left(左对齐)、center(居中对齐)、right(右对齐)

maxLines属性

设置最多显示的行数,比如我们现在只显示1行。代码如下:

  1. child:Text(
  2. 'Hello',
  3. textAlign:TextAlign.left,
  4. maxLines: 1,
  5. )

overflow属性

overflow属性是用来设置文本溢出时,如何处理,它有下面几个常用的值供我们选择。

  • clip:直接切断,剩下的文字就没有了,感觉不太友好,体验性不好。
  • ellipsis:在后边显示省略号,体验性较好,这个在工作中经常使用。
  • fade: 溢出的部分会进行一个渐变消失的效果,当然是上线的渐变,不是左右的哦。

style属性

style属性

字体的样式设置

下面是 TextStyle 的参数 :

名称

功能

decoration

文字装饰线(none 没有线,lineThrough 删 除线,overline 上划线,underline 下划线)

  1. decorationColor

文字装饰线颜色

  1. decorationStyle

文字装饰线风格([dashed,dotted]虚线, double 两根线,solid 一根实线,wavy 波浪 线)

wordSpacing

单词间隙(如果是负值,会让单词变得更紧 凑

  1. letterSpacing

字母间隙(如果是负值,会让字母变得更紧 凑)

fontStyle

文字样式(italic 斜体,normal 正常体)

fontSize

文字大小

color

文字颜色

fontWeight

字体粗细(bold 粗体,normal 正常体)

Container容器组件

Container(容器控件)在Flutter是经常使用的控件,它就相当于HTML里的<div>标签,每个页面或者说每个视图都离不开它。

alignment属性

其实容器的作用就是方便我们进行布局的,Flutter这点也作的很好,我们先来看容器属性中的Alignment

这个属性针对的是Container内child的对齐方式,也就是容器子内容的对齐方式,并不是容器本身的对齐方式。

先作一个效果:建立一个容器,然后容器内加入一段文字, 并让它居中对齐。

  1. topCenter:顶部居中对齐
  2. topLeft:顶部左对齐
  3. topRight:顶部右对齐
  4. center:水平垂直居中对齐
  5. centerLeft:垂直居中水平居左对齐
  6. centerRight:垂直居中水平居右对齐
  7. bottomCenter 底部居中对齐
  8. bottomLeft:底部居左对齐
  9. bottomRight:底部居右对齐
  1. child:Container(
  2. child:new Text('Hello',style: TextStyle(fontSize: 40.0),),
  3. alignment: Alignment.center,
  4. ),

设置宽、高和颜色属性

设置宽、高和颜色属性是相对容易的,只要在属性名称后面加入浮点型数字就可以了, 示例代码如下:

  1. child:Container(
  2. child:new Text('Hello,style: TextStyle(fontSize: 40.0),),
  3. alignment: Alignment.center,
  4. width:200.0,
  5. height:40.0,
  6. color: Colors.lightBlue,
  7. ),

padding属性

padding的属性就是一个内边距,它和你使用的前端技术CSS里的padding表现形式一样,指的是Container边缘和child内容的距离。设置内边距为10的示例代码如下:

  1. child:Container(
  2. child:new Text('Hello',style: TextStyle(fontSize: 40.0),),
  3. alignment: Alignment.topLeft,
  4. width:200.0,
  5. height:40.0,
  6. color: Colors.lightBlue,
  7. padding:const EdgeInsets.all(10.0),
  8. ),

核心代码:

  1. padding:const EdgeInsets.all(10.0),

意思是设置Container的内边距是10,左右上下全部为10

如果设置不一样,则使用下列的方法实现:

  1. EdgeInsets.fromLTRB(value1,value2,value3,value4)
  1. padding:const EdgeInsets.fromLTRB(10.0,30.0,0.0,0.0), //上边距为30,左边距为10

margin属性

margin是外边距,只的是container和外部元素的距离。

方法同padding使用相同

  1. margin: const EdgeInsets.all(10.0),
  1. margin:const EdgeInsets.fromLTRB(10.0,30.0,0.0,0.0),//上外边距为30,左外边距为10

decoration属性

decoration是 container 的修饰器,主要的功能是设置背景和边框。

比如你需要给背景加入一个渐变,这时候需要使用BoxDecoration这个类,代码如下(需要注意的是如果你设置了decoration,就不要再设置color属性了,因为这样会冲突)。

  1. child:Container(
  2. child:new Text('Hello JSPang',style: TextStyle(fontSize: 40.0),),
  3. alignment: Alignment.topLeft,
  4. width:200.0,
  5. height:40.0,
  6. padding:const EdgeInsets.fromLTRB(10.0,30.0,0.0,0.0),
  7. margin: const EdgeInsets.all(10.0),
  8. decoration:new BoxDecoration(
  9. gradient:const LinearGradient(
  10. colors:[Colors.lightBlue,Colors.greenAccent,Colors.purple]
  11. )
  12. ),
  13. ),

设置边框

设置边框可以在decoration里设置border属性,比如你现在要设置一个红色边框,宽度为2。代码如下:

  1. decoration:new BoxDecoration(
  2. gradient:const LinearGradient(
  3. colors:[Colors.lightBlue,Colors.greenAccent,Colors.purple]
  4. ),
  5. border:Border.all(width:2.0,color:Colors.red)
  6. ),

设置圆角,圆形等外框

  1. decoration: BoxDecoration(
  2. color: Colors.yellow,
  3. border: Border.all(
  4. color: Colors.blue,
  5. width: 2.0
  6. ),
  7. borderRadius: BorderRadius.all(
  8. // Radius.circular(150), //圆形
  9. Radius.circular(10),
  10. )
  11. ),

transform 属性

让 Container 容易进行一些旋转之类的

  1. // transform:Matrix4.translationValues(100,0,0)
  2. // transform:Matrix4.rotationZ(0.3)
  3. transform:Matrix4.diagonal3Values(1.2, 1, 1)

Flutter Container容器组件、Text文本组件详解的更多相关文章

  1. rich-text 副文本组件 text文本组件

    rich-text 副文本组件 要知道我们小程序常用的标签是view 但是我们想使用div   span  h1 i 标签等等,这种带特性的标签,怎么办的,我们就可以使用我们的 rich-text组件 ...

  2. 【Flutter学习】基本组件之文本组件Text

    一,概述 文本组件(Text)负责显示文本和定义显示样式, 二,继承关系 Object > Diagnosticable > DiagnosticableTree > Widget ...

  3. Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解

    如需转载,请注明出处:Flutter学习笔记(15)--MaterialApp应用组件及routes路由详解 最近一段时间生病了,整天往医院跑,也没状态学东西了,现在是好了不少了,也该继续学习啦!!! ...

  4. 详解Android中的四大组件之一:Activity详解

    activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...

  5. SpringMVC 框架系列之组件概述与配置详解

    在上一篇文章 SpringMVC 框架系列之初识与入门实例 的实例中,我们已经知道,SpringMVC 框架是一个 web 层的框架,本篇文章就详细解释一下 SpringMVC 框架具体文件的配置以及 ...

  6. 【docker-compose】docker-compose.yml文本内容详解 + docker-compose命令详解 + docker-compose启动服务容器时区设置

    参考地址:https://blog.csdn.net/Kiloveyousmile/article/details/79830810 参考地址:https://docs.docker.com/comp ...

  7. Spring组件扫描<context:component-scan/>详解

    引言 最近使用Spring,发现有很多依赖注入的内容,特别是DAO,百思不得其解,后来才知道是Spring的依赖注入.Spring可以批量将一个目录下所有的植入@Repository 注解或者@Ser ...

  8. Android组件化框架项目详解

    简介 什么是组件化? 项目发展到一定阶段时,随着需求的增加以及频繁地变更,项目会越来越大,代码变得越来越臃肿,耦合会越来越多,开发效率也会降低,这个时候我们就需要对旧项目进行重构即模块的拆分,官方的说 ...

  9. vue2.0父子组件以及非父子组件通信传参详解

    1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg" ...

随机推荐

  1. qingqing的项目

    1 https://www.cnblogs.com/zhangqing979797/p/10147679.html 2 https://www.cnblogs.com/zhangqing979797/ ...

  2. 思想家:潘石屹学python

    1.python在一些算法,图像处理,机器视觉方面越来越重要 2.计算机语言像英语一样,渐渐成为一种非专业技术,不能成为专业,而只能成为一种工具 3.想发挥工具价值,需要与别的专业结合,例如潘总的房地 ...

  3. 《你们都是魔鬼吗》第八次团队作业:第一天Alpha冲刺

    <你们都是魔鬼吗>第八次团队作业:Alpha冲刺 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 你们都是魔鬼吗 作业学习目标 完成最 ...

  4. 牛客82-B:区间的连续段 (ST表,贪心)(WXK牛逼)

    题目描述 给你一个长为n的序列a和一个常数k 有m次询问,每次查询一个区间[l,r]内所有数最少分成多少个连续段,使得每段的和都 <= k 如果这一次查询无解,输出"Chtholly& ...

  5. Vue之@click、事件修饰符@click.stop与@click.prevent、按键修饰符@keyup.enter

    1.绑定监听@click: (以监听click为例,其他如keyup,用法类似)  v-on:click="fun"  @click="fun"  @click ...

  6. LightOJ - 1323 - Billiard Balls(模拟)

    链接: https://vjudge.net/problem/LightOJ-1323 题意: You are given a rectangular billiard board, L and W ...

  7. if语句:若边长小于等于0,则不进行计算;否则,计算正方形的面积

    #include<stdio.h>void main(){ float a; printf("Input the value:"); scanf("%f&qu ...

  8. http健康状态检查

    来自为知笔记(Wiz)

  9. 微信小程序 图片加载失败处理方法

    微信小程序 官方文档对image 媒体组件加载失败 没有太多的解释,使用中出现了几个小问题,今天抽空记录一下 WXML: <image class="userinfo-avatar&q ...

  10. 【HTML】解析原理

    标准的web前端工程师需要知道 ◎浏览器(或者相应播放器)的渲染/重绘原理 这我得加把劲了.我还真的说的不是很清楚,我就G下,结果不是很多,找到了有一个,就记下来了... 以下部分来自handawei ...