当前位置:   article > 正文

flutter 开发常用Widget_flutter哪些widget能设置padding

flutter哪些widget能设置padding

Text组件及其属性:

  1. //基础格式。Text组件
  2. import 'package:flutter/material.dart';
  3. void main() {
  4. runApp(MyApp());
  5. }
  6. class MyApp extends StatelessWidget {
  7. @override
  8. Widget build(BuildContext context) {
  9. return MaterialApp(
  10. title: 'Text Widgetdddddd',
  11. home: Scaffold(
  12. body: Center(
  13. child: Text(
  14. 'Heldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgesteldlo Widgest',
  15. textAlign: TextAlign.center,
  16. maxLines: 1,
  17. overflow: TextOverflow.ellipsis,
  18. style: TextStyle(
  19. fontSize: 25.0, color: Color.fromARGB(255, 255, 127, 127)),
  20. ),
  21. ),
  22. ));
  23. }
  24. }

TextAlign属性:对齐方式

三个对齐方式,left(左对齐)、center(居中对齐)、right(右对齐)

overflow属性:overflow属性是用来设置Text文本组件文本溢出时处理的方式

  • clip:直接切断,剩下的文字就没有了,感觉不太友好,体验性不好。
  • ellipsis:在后边显示省略号,体验性较好,相当于Android的属性 android:ellipsize="end"
  • fade: 溢出的部分会进行一个渐变消失的效果,当然是上线的渐变,不是左右的哦。

style属性 :设置大小,颜色,下划线等

Container容器控件及其属性:

 Container(容器控件)在Flutter是经常使用的控件,它就相当于我们HTML里的<div>标签,能设置padding,margin,高度,border,内容的对齐方式等

  1. Container(
  2. margin: EdgeInsets.all(ScreenUtil().setSp(48)),
  3. height: ScreenUtil().setSp(400),
  4. decoration: BoxDecoration(
  5. color: BG_WIDGET_COLOR,
  6. borderRadius: BorderRadius.circular(ScreenUtil().setSp(16)),
  7. boxShadow: [
  8. BoxShadow(
  9. color: COMMON_FONT_COLOR,
  10. offset: Offset(0.0, 0.0), //阴影xy轴偏移量
  11. blurRadius: 6.0, //阴影模糊程度
  12. spreadRadius: 1.0 //阴影扩散程度
  13. )
  14. ]
  15. ),
  16. child: SizedBox();
  17. )

图片组件及其属性:

  1. Image.asset(
  2. 'images/no_data.png',
  3. width: ScreenUtil().setWidth(512),
  4. height: ScreenUtil().setHeight(512),
  5. color: SELECTED_FONT_COLOR,
  6. ),

 加入图片的几种形式

  1. Image.asset:加载资源图片,就是加载项目资源目录中的图片,加入图片后会增大打包的包体体积,用的是相对路径。
  2. Image.network:加载一张网络资源图片,比如百度图标:https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png
  3. Image.file:加载本地图片,就是加载本地文件中的图片,这个是一个绝对路径,跟包体无关。
  4. Image.memory: 加载Uint8List资源图片。

fit属性可以控制图片的拉伸和挤压 

repeat属性 

  • ImageRepeat.repeat : 横向和纵向都进行重复,直到铺满整个画布。

  • ImageRepeat.repeatX: 横向重复,纵向不重复。

  • ImageRepeat.repeatY:纵向重复,横向不重复。

ListView 列表组件及其属性:

实现列表结构,直接使用按简单列表排序

ListTile 是Flutter 给我们准备好的widget 提供非常常见的构造和定义方式,包括文字,icon,点击事件,一般是能够满足基本需求,但是就不能自己定义了

ListView builder

builder 顾名思义 构造 可以非常方便的构建我们自己定义的child布局,所以在Flutter中非常的常用。

常用就这俩种。其他属性可自行查看

Column和Row列表组件及其属性:

Row(水平布局控件)、Column(垂直布局控件)

Column和Row,顾名思义一个是水平排列和垂直排列其内部children widget,
借鉴了Web中Flex布局,所以很多属性和表现,都跟其相似。

MainAxisAlignment:主轴方向上的对齐方式,会对child位置起作用,默认是start;

MainAxissSize:在主轴方向占有空间的值,默认是max。(max、min);

CrossAxisAlignment:children在交叉轴方向的对齐方式,

Row和Column源码就一个够着函数,具体的实现全部都是在他们的父类Flex中

Flex构造函数:

  1. Flex({
  2. Key key,
  3. @required this.direction,
  4. this.mainAxisAlignment = MainAxisAlignment.start,
  5. this.mainAxisSize = MainAxisSize.max,
  6. this.crossAxisAlignment = CrossAxisAlignment.center,
  7. this.textDirection,
  8. this.verticalDirection = VerticalDirection.down,
  9. this.textBaseline,
  10. List<Widget> children = const <Widget>[],
  11. })

其中direction是控制水平还是垂直的,当为Axis.horizontal的时候,则是Row,当为Axis.vertical的时候,则是Column。

Expanded 布局

Expanded是用于展开Row,Column或Flex的子child的Widget。 使用Expanded可以使[Row],[Column]或[Flex]的子项扩展以填充主轴中的可用空间。

 Row、Column、Flex会被Expanded撑开,充满主轴可用空间。

  1. Row(
  2. children: <Widget>[
  3. Container( /// 此组件在主轴方向占据48.0逻辑像素
  4. width: 48.0
  5. ),
  6. Expanded(
  7. child: Container() /// 此组件会填满Row在主轴方向的剩余空间,撑开Row
  8. )
  9. ]
  10. )

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/313254
推荐阅读
相关标签
  

闽ICP备14008679号