Flutter 常用组件大全

Flutter 常用组件大全

Flutter 提供了丰富的组件来构建 UI,以下是常见的组件,按 功能类别 分类。


1️⃣ 基础布局组件

组件作用示例
Container盒子容器,支持装饰、边距、大小Container(width: 100, height: 100, color: Colors.red)
Padding内边距Padding(padding: EdgeInsets.all(10), child: Text("Hello"))
Center居中对齐Center(child: Text("居中"))
Align位置对齐Align(alignment: Alignment.bottomRight, child: Text("右下角"))
SizedBox固定大小的空白间距SizedBox(height: 20)
Expanded让子组件填充剩余空间Expanded(child: Text("填充空间"))
Flexible控制子组件弹性大小Flexible(child: Text("弹性大小"))
Padding(
  padding: EdgeInsets.all(20),
  child: Center(child: Text("Hello, Flutter!")),
)

2️⃣ 列表 & 网格

组件作用示例
ListView滚动列表ListView(children: [...])
GridView网格布局GridView.count(crossAxisCount: 3, children: [...])
SingleChildScrollView单个子元素滚动SingleChildScrollView(child: Column(...))
ListView(
  children: [
    ListTile(title: Text("Item 1")),
    ListTile(title: Text("Item 2")),
  ],
)

3️⃣ 文字 & 按钮

组件作用示例
Text文本Text("Hello", style: TextStyle(fontSize: 18))
RichText富文本RichText(text: TextSpan(text: "Bold", style: TextStyle(fontWeight: FontWeight.bold)))
ElevatedButton立体按钮ElevatedButton(onPressed: () {}, child: Text("点击"))
TextButton文字按钮TextButton(onPressed: () {}, child: Text("文字按钮"))
IconButton图标按钮IconButton(icon: Icon(Icons.star), onPressed: () {})
ElevatedButton(
  onPressed: () {
    print("按钮点击");
  },
  child: Text("点击我"),
)

4️⃣ 图片 & 图标

组件作用示例
Image.asset加载本地图片Image.asset("assets/logo.png")
Image.network加载网络图片Image.network("https://example.com/logo.png")
Icon图标Icon(Icons.favorite, color: Colors.red)
Image.network(
  "https://picsum.photos/200",
  width: 100,
  height: 100,
)

5️⃣ 输入框 & 表单

组件作用示例
TextField单行输入框TextField(decoration: InputDecoration(labelText: "输入内容"))
TextFormField表单输入框TextFormField(decoration: InputDecoration(labelText: "请输入"))
Checkbox复选框Checkbox(value: true, onChanged: (val) {})
Switch开关Switch(value: true, onChanged: (val) {})
Slider滑动条Slider(value: 0.5, onChanged: (val) {})
TextField(
  decoration: InputDecoration(
    labelText: "输入用户名",
    border: OutlineInputBorder(),
  ),
)

6️⃣ 导航 & 路由

组件作用示例
Navigator页面导航Navigator.push(context, MaterialPageRoute(builder: (context) => NewPage()))
BottomNavigationBar底部导航栏BottomNavigationBar(items: [...])
Drawer侧边菜单Drawer(child: ListView(...))
TabBar顶部 Tab 选项卡TabBar(tabs: [...])
BottomNavigationBar(
  items: [
    BottomNavigationBarItem(icon: Icon(Icons.home), label: "首页"),
    BottomNavigationBarItem(icon: Icon(Icons.person), label: "我的"),
  ],
)

7️⃣ 对话框 & 提示

组件作用示例
AlertDialog弹出对话框showDialog(context: context, builder: (context) => AlertDialog(title: Text("提示")))
SnackBar底部提示ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("操作成功")))
showDialog(
  context: context,
  builder: (context) {
    return AlertDialog(
      title: Text("提示"),
      content: Text("确认要退出吗?"),
      actions: [
        TextButton(onPressed: () => Navigator.pop(context), child: Text("取消")),
        TextButton(onPressed: () => print("确认"), child: Text("确定")),
      ],
    );
  },
);

✅ 总结

  • 布局组件ContainerPaddingCenter
  • 列表组件ListViewGridView
  • 文本 & 按钮TextElevatedButton
  • 图片 & 图标ImageIcon
  • 输入框 & 表单TextFieldCheckbox
  • 导航 & 路由NavigatorBottomNavigationBar
  • 对话框 & 提示AlertDialogSnackBar

如果你需要更详细的示例代码,可以告诉我你的具体需求!🚀

### PyCharm 打开文件显示不全的解决方案 当遇到PyCharm打开文件显示不全的情况时,可以尝试以下几种方法来解决问题。 #### 方法一:清理缓存并重启IDE 有时IDE内部缓存可能导致文件加载异常。通过清除缓存再启动程序能够有效改善此状况。具体操作路径为`File -> Invalidate Caches / Restart...`,之后按照提示完成相应动作即可[^1]。 #### 方法二:调整编辑器字体设置 如果是因为字体原因造成的内容显示问题,则可以通过修改编辑区内的文字样式来进行修复。进入`Settings/Preferences | Editor | Font`选项卡内更改合适的字号大小以及启用抗锯齿功能等参数配置[^2]。 #### 方法三:检查项目结构配置 对于某些特定场景下的源码视图缺失现象,可能是由于当前工作空间未能正确识别全部模块所引起。此时应该核查Project Structure里的Content Roots设定项是否涵盖了整个工程根目录;必要时可手动添加遗漏部分,并保存变更生效[^3]。 ```python # 示例代码用于展示如何获取当前项目的根路径,在实际应用中可根据需求调用该函数辅助排查问题 import os def get_project_root(): current_file = os.path.abspath(__file__) project_dir = os.path.dirname(current_file) while not os.path.exists(os.path.join(project_dir, '.idea')): parent_dir = os.path.dirname(project_dir) if parent_dir == project_dir: break project_dir = parent_dir return project_dir print(f"Current Project Root Directory is {get_project_root()}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值