Flutter 是一个由 Google 开发的开源 UI 框架,用于构建美观、快速、高效的移动应用。在 Flutter 开发中,掌握一些实用的部件和技巧对于提升开发效率和应用质量至关重要。本文将详细介绍 50 个 Flutter 实用部件及其实战技巧,帮助开发者更好地掌握 Flutter 开发。
1. Scaffold
Scaffold 是 Flutter 应用中的基本结构,它提供了应用的基本布局结构,包括一个 appBar、body 和底部导航栏等。
Scaffold(
appBar: AppBar(
title: Text('标题'),
),
body: Center(
child: Text('欢迎来到 Flutter'),
),
);
2. Container
Container 用于创建一个具有边框、背景、阴影等样式的容器。
Container(
width: 100.0,
height: 100.0,
color: Colors.blue,
child: Center(
child: Text('容器'),
),
);
3. Row 和 Column
Row 和 Column 用于创建水平或垂直布局。
Row(
children: <Widget>[
Text('Row'),
Text('Column'),
],
);
4. Expanded
Expanded 用于让子部件在父部件中填充可用空间。
Row(
children: <Widget>[
Text('Expanded'),
Expanded(
child: Text('填充空间'),
),
],
);
5. ListView
ListView 用于创建可滚动的列表。
ListView(
children: <Widget>[
Text('列表项 1'),
Text('列表项 2'),
Text('列表项 3'),
],
);
6. Card
Card 用于创建卡片布局。
Card(
child: Column(
children: <Widget>[
Text('卡片标题'),
Text('卡片内容'),
],
),
);
7. TextField
TextField 用于创建输入框。
TextField(
decoration: InputDecoration(
labelText: '用户名',
),
);
8. ElevatedButton
ElevatedButton 用于创建一个具有阴影和颜色的按钮。
ElevatedButton(
onPressed: () {},
child: Text('按钮'),
);
9. Switch
Switch 用于创建开关控件。
Switch(
value: true,
onChanged: (bool value) {},
);
10. Slider
Slider 用于创建滑动条控件。
Slider(
value: 50.0,
onChanged: (double value) {},
);
11. AppBar
AppBar 用于创建应用栏。
AppBar(
title: Text('应用栏'),
actions: <Widget>[
IconButton(
icon: Icon(Icons.search),
onPressed: () {},
),
],
);
12. BottomNavigationBar
BottomNavigationBar 用于创建底部导航栏。
BottomNavigationBar(
items: [
BottomNavigationBarItem(
icon: Icon(Icons.home),
label: '首页',
),
BottomNavigationBarItem(
icon: Icon(Icons.business),
label: '业务',
),
],
);
13. Drawer
Drawer 用于创建侧滑菜单。
Drawer(
child: ListView(
children: <Widget>[
ListTile(
title: Text('菜单项 1'),
onTap: () {},
),
],
),
);
14. Image
Image 用于显示图片。
Image.asset('images/logo.png');
15. FadeTransition
FadeTransition 用于创建淡入淡出效果。
FadeTransition(
opacity: Tween<double>(begin: 0.0, end: 1.0).animate(
CurvedAnimation(
parent: animation,
curve: Curves.easeIn,
),
),
child: Image.asset('images/logo.png'),
);
16. AnimatedContainer
AnimatedContainer 用于创建动画效果。
AnimatedContainer(
duration: Duration(seconds: 2),
curve: Curves.easeInOut,
width: 100.0,
height: 100.0,
color: Colors.blue,
child: Center(
child: Text('动画容器'),
),
);
17. PageView
PageView 用于创建页面滚动效果。
PageView(
children: <Widget>[
Text('页面 1'),
Text('页面 2'),
Text('页面 3'),
],
);
18. CustomPaint
CustomPaint 用于自定义绘制。
CustomPaint(
painter: MyPainter(),
);
19. Stack
Stack 用于堆叠子部件。
Stack(
children: <Widget>[
Text('Stack'),
Positioned(
top: 50.0,
left: 50.0,
child: Text('子部件'),
),
],
);
20. FractionallySizedBox
FractionallySizedBox 用于根据父部件大小调整子部件大小。
FractionallySizedBox(
widthFactor: 0.5,
heightFactor: 0.5,
child: Text('调整大小'),
);
21. AspectRatio
AspectRatio 用于设置子部件的宽高比。
AspectRatio(
aspectRatio: 2.0 / 1.0,
child: Container(
color: Colors.blue,
),
);
22. IntrinsicHeight
IntrinsicHeight 用于设置子部件高度。
IntrinsicHeight(
child: Row(
children: <Widget>[
Text('高度自适应'),
Text('高度自适应'),
],
),
);
23. IntrinsicWidth
IntrinsicWidth 用于设置子部件宽度。
IntrinsicWidth(
child: Row(
children: <Widget>[
Text('宽度自适应'),
Text('宽度自适应'),
],
),
);
24. Padding
Padding 用于设置子部件的边距。
Padding(
padding: EdgeInsets.all(10.0),
child: Text('边距'),
);
25. Align
Align 用于设置子部件的对齐方式。
Align(
alignment: Alignment.center,
child: Text('居中对齐'),
);
26. Transform
Transform 用于对子部件进行变换。
Transform(
transform: Matrix4.rotationZ(0.5),
child: Text('旋转'),
);
27. RotatedBox
RotatedBox 用于旋转子部件。
RotatedBox(
angle: 45.0,
child: Text('旋转'),
);
28. ScaleBox
ScaleBox 用于缩放子部件。
ScaleBox(
scale: 0.5,
child: Text('缩放'),
);
29. ClipOval
ClipOval 用于裁剪子部件为椭圆形。
ClipOval(
child: Image.asset('images/logo.png'),
);
30. ClipRRect
ClipRRect 用于裁剪子部件为圆角矩形。
ClipRRect(
borderRadius: BorderRadius.circular(10.0),
child: Image.asset('images/logo.png'),
);
31. ClipRect
ClipRect 用于裁剪子部件为矩形。
ClipRect(
child: Image.asset('images/logo.png'),
);
32. ClipPath
ClipPath 用于裁剪子部件为自定义路径。
ClipPath(
clipper: MyClipper(),
child: Image.asset('images/logo.png'),
);
33. Positioned
Positioned 用于设置子部件的位置。
Positioned(
top: 50.0,
left: 50.0,
child: Text('位置'),
);
34. AnimatedPositioned
AnimatedPositioned 用于创建动画效果。
AnimatedPositioned(
duration: Duration(seconds: 2),
curve: Curves.easeInOut,
top: 50.0,
left: 50.0,
child: Text('动画位置'),
);
35. DefaultTextStyle
DefaultTextStyle 用于设置子部件的默认文本样式。
DefaultTextStyle(
style: TextStyle(
color: Colors.red,
fontSize: 20.0,
),
child: Column(
children: <Widget>[
Text('红色文本'),
Text('红色文本'),
],
),
);
36. RichText
RichText 用于创建富文本。
RichText(
text: TextSpan(
children: [
TextSpan(
text: '富文本',
style: TextStyle(
color: Colors.blue,
fontSize: 20.0,
),
),
TextSpan(
text: '示例',
style: TextStyle(
color: Colors.red,
fontSize: 20.0,
),
),
],
),
);
37. Text
Text 用于创建文本。
Text(
'文本',
style: TextStyle(
color: Colors.black,
fontSize: 20.0,
),
);
38. Center
Center 用于居中子部件。
Center(
child: Text('居中'),
);
39. AspectRatio
AspectRatio 用于设置子部件的宽高比。
AspectRatio(
aspectRatio: 2.0 / 1.0,
child: Container(
color: Colors.blue,
),
);
40. IntrinsicHeight
IntrinsicHeight 用于设置子部件高度。
IntrinsicHeight(
child: Row(
children: <Widget>[
Text('高度自适应'),
Text('高度自适应'),
],
),
);
41. IntrinsicWidth
IntrinsicWidth 用于设置子部件宽度。
IntrinsicWidth(
child: Row(
children: <Widget>[
Text('宽度自适应'),
Text('宽度自适应'),
],
),
);
42. Padding
Padding 用于设置子部件的边距。
Padding(
padding: EdgeInsets.all(10.0),
child: Text('边距'),
);
43. Align
Align 用于设置子部件的对齐方式。
Align(
alignment: Alignment.center,
child: Text('居中对齐'),
);
44. Transform
Transform 用于对子部件进行变换。
Transform(
transform: Matrix4.rotationZ(0.5),
child: Text('旋转'),
);
45. RotatedBox
RotatedBox 用于旋转子部件。
RotatedBox(
angle: 45.0,
child: Text('旋转'),
);
46. ScaleBox
ScaleBox 用于缩放子部件。
ScaleBox(
scale: 0.5,
child: Text('缩放'),
);
47. ClipOval
ClipOval 用于裁剪子部件为椭圆形。
ClipOval(
child: Image.asset('images/logo.png'),
);
48. ClipRRect
ClipRRect 用于裁剪子部件为圆角矩形。
ClipRRect(
borderRadius: BorderRadius.circular(10.0),
child: Image.asset('images/logo.png'),
);
49. ClipRect
ClipRect 用于裁剪子部件为矩形。
ClipRect(
child: Image.asset('images/logo.png'),
);
50. ClipPath
ClipPath 用于裁剪子部件为自定义路径。
ClipPath(
clipper: MyClipper(),
child: Image.asset('images/logo.png'),
);
以上是 50 个 Flutter 实用部件及其实战技巧的介绍,希望对您的 Flutter 开发有所帮助。在实际开发过程中,您可以根据需求选择合适的部件,并结合实战技巧,打造出精美的 Flutter 应用。
