• flutter学习之控件的使用


    两个重要Widget

    StatelessWidget:
    1、无状态widget,内容不可变,这意味着它们的属性不能改变——所有的值都是最终的。
    2、如果无状态Widget里面有子Widget,并且子Widget是有状态的,则子Widget的内容是可以通过setState来更改的。无状态Widget影响的仅仅是自己是无状态的,不回影响他的父Widget和子Widget。
    StatefulWidget:
    1、有状态widget,内容可变,Stateful widgets 持有的状态可能在widget生命周期中发生变化。
    2、创建一个有状态的widget需要进行以下操作:
            要创建一个自定义有状态widget,需创建两个类:StatefulWidget和State。
            我们要定义一个widget类,继承自StatefulWidget。
            子State,包含该widget状态并定义该widget build()方法的类,它继承自State。
            状态对象包含widget的状态和build() 方法。
            当widget的状态改变时,状态对象调用setState(),告诉框架重绘widget
    

    页面跳转:

    Navigator.of(context).pushNamed(“your page routeName”);

    常用控件介绍:

    Scaffold:脚手架
    Text:文本框
    ElevatedButton:按钮
    Container:容器,具有边距,居中,靠左,靠右显示的属性
    Column:竖向排列的一个显示控件,类似于横向的linerlayout
    Row:横向排列的一个控件,类似于竖向的linerlayout
    Expanded:一般用在Row中,占满一行剩余长度
    Icon:图标,使用后示例:Icon(Icons.arrow_back,)
    TextField:编辑框,Android中的edittext
    Stack:事件穿透,widget层叠,类似于Android中的relativelayout

    scaffold使用示例:

    1. Scaffold(
    2. appBar: AppBar(
    3. title: Text("蓝牙"),
    4. leading: IconButton(
    5. icon: Icon(Icons.arrow_back,),
    6. onPressed: (){
    7. Navigator.of(context).pop();
    8. },
    9. ),
    10. ),
    11. body: “显示内容各种控件都可以放,最层只能是一个Widget”,
    12. )
    ElevatedButton使用示例:
    ElevatedButton(onPressed: (){//此处处理点击事件}, child: Text("搜索"))

  • 相关阅读:
    C++拷贝、赋值、移动、析构、默认构造 什么时候会被默认生成delete
    yolov5训练问题
    ssm+vue租房维保系统-房屋维修系统
    【Java八股文总结】之消息队列
    虚拟机搭建开发环境jdk、mysql、redis、nacos、nginx
    【死磕NIO】— 跨进程文件锁:FileLock
    性能测试工具:Jmeter介绍
    阿里开源组件Nacos实战操作之安装部署完整版
    科技资讯|2023全球智能手表预估出货1.3亿块,智能穿戴提升AI功能
    快速灵敏的 Flink1
  • 原文地址:https://blog.csdn.net/congcongguniang/article/details/126317037