Flutter的学习4|“朝闻道”知识分享大赛

简单凯凯 2024-12-12 11:25:36

这是我参加朝闻道知识分享大赛的第115篇文章

更多组件

1. 固定宽高比组件

  • AspectRatio 组件

    • aspectRatio 定义盒子比例

    • 根据父级盒子

    AspectRatio(
        aspectRatio: 16.0 / 9.0,
        child: Container(
            color: Color.fromRGBO(3, 54, 255, 1.0),
        ),
    );

2. 层叠堆放组件

  • Stack 组件

    • alignment对齐属性

    • 定义多个子组件

      • 定义第一个最底层的组件

      • 通过Positioned组件来定义对位组件

        • 定义方位属性

```
Stack(
  alignment: Alignment.topLeft,
  children: <Widget>[
    Container( // 第一个子组件在最下面
        decoration: BoxDecoration(
          color: Color.fromRGBO(3, 54, 255, 1.0),
          borderRadius: BorderRadius.circular(8.0),
        ),
    ),
    Positioned( //做层叠定位的组件
      right: 20.0,
      top: 20.0,
      child: Icon(Icons.ac_unit, color: Colors.white, size: 16.0),
    ),
    Positioned(
      right: 40.0,
      top: 60.0,
      child: Icon(Icons.ac_unit, color: Colors.white, size: 18.0),
    ),
  ],
);
```

3. 固定尺寸组件

  • SizedBox 组件

    • 固定宽度

    • 固定高度

    SizedBox(
      height: 32.0,
      width: 100.0
    ),

4. 水平分割线组件

  • Divider 组件

    • 颜色设置

    • 固定高度

    Divider(
        height: 1.0,
    )

5. 列表行组件

  • ListTile 组件

    • 行前图标

    • 行尾图标

    • 标题

    • 副标题

    • 点按动作

    ListTile(
        title: Text('我的账户'),
        subtitle: Text('data'),
        leading: Icon(Icons.account_box),
        trailing: Icon(Icons.account_box),
        onTap: (){
          print('按下了我的账户');
        },
      ),

6.Tag标签组件

  • Chip 组件

    • 文字 label

    • 背景颜色 backgroundColor

    • 行前图标 avatar

    • 删除按钮 onDeleted

    Chip(
        label: Text('Tag'),
        backgroundColor: Colors.orange,
         : CircleAvatar(
          backgroundColor: Colors.grey,
          child: Text('e'),
        ),
        onDeleted: () {},
        deleteIcon: Icon(Icons.delete),
      ),

 

表单输入

1. 文本输入

* 使用文本框组件 `TextField()`

 2. 文本输入样式

* decoration 装饰属性

  * Icon 图标

  * labelText 提示

  * hintText 预置提示

  * border 边框

  * filled 背景颜色

  ```
  TextField(
      decoration: InputDecoration(
        icon: Icon(Icons.subject),
        labelText: '姓名',
        hintText: '请输入',
        border: InputBorder.none,
        // border: OutlineInputBorder(),
        filled: true,
      ),
    );
  ```

3. 输入监听

* onChanged 改变

* onSubmitted 确认按钮

```
   onChanged: (value) {
     debugPrint('input: $value');
   },
   onSubmitted: (value) {
    debugPrint('submit: $value');
   },
```

* 密码框 `obscureText`

4.状态组件

* StatefulWidget 添加一个有状态的组件

  * 可以有数据改变的组件

  ```
  class Form extends StatefulWidget {
    @override
    _FormState createState() => _FormState(); //为组件建立状态管理
  }
  
  class _FormState extends State<Form> { //创建有状态的组件
    @override
    Widget build(BuildContext context) {
      return Container(
        
      );
    }
  }
  ```

...全文
21 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,040

社区成员

发帖
与我相关
我的任务
社区描述
中南民族大学CSDN高校俱乐部聚焦校内IT技术爱好者,通过构建系统化的内容和运营体系,旨在将中南民族大学CSDN社区变成校内最大的技术交流沟通平台。
经验分享 高校 湖北省·武汉市
社区管理员
  • c_university_1575
  • WhiteGlint666
  • wzh_scuec
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎各位加入中南民族大学&&CSDN高校俱乐部社区(官方QQ群:908527260),成为CSDN高校俱乐部的成员具体步骤(必填),填写如下表单,表单链接如下:
人才储备数据库及线上礼品发放表单邀请人吴钟昊:https://ddz.red/CSDN
CSDN高校俱乐部是给大家提供技术分享交流的平台,会不定期的给大家分享CSDN方面的相关比赛以及活动或实习报名链接,希望大家一起努力加油!共同建设中南民族大学良好的技术知识分享社区。

注意:

1.社区成员不得在社区发布违反社会主义核心价值观的言论。

2.社区成员不得在社区内谈及政治敏感话题。

3.该社区为知识分享的平台,可以相互探讨、交流学习经验,尽量不在社区谈论其他无关话题。

试试用AI创作助手写篇文章吧