Flutter是一种快速开发高质量、高性能移动应用程序的框架,具有丰富的组件库和易于学习的语言。以下是一些常用的Flutter组件及其用途:
### MaterialApp
MaterialApp是一个常用的Flutter组件,用于创建一个基于Material Design的应用程序。它提供了许多预定义的组件,如Scaffold、AppBar、BottomNavigationBar等,可以快速构建美观的移动应用程序。
以下是一个简单的MaterialApp示例:
```dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Home Page'),
);
}
}
class MyHomePage extends StatelessWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
),
body: Center(
child: Text('Hello, World!'),
),
);
}
}
```
### ListView
ListView是一个常用的Flutter组件,用于显示一个可滚动的列表。它可以根据需要动态加载列表项,并支持各种自定义样式和布局。
以下是一个简单的ListView示例:
```dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Home Page'),
);
}
}
class MyHomePage extends StatelessWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
final List<String> items = List<String>.generate(10000, (i) => "Item $i");
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
),
body: ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
return ListTile(
title: Text('${items[index]}'),
);
},
),
);
}
}
```
### TextField
TextField是一个常用的Flutter组件,用于接收用户输入。它可以根据需要设置各种样式和验证规则,并支持各种键盘类型和输入格式。
以下是一个简单的TextField示例:
```dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
final myController = TextEditingController();
@override
void dispose() {
myController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: TextField(
controller: myController,
decoration: InputDecoration(
hintText: 'Enter some text',
),
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text('Text entered'),
content: Text('${myController.text}'),
actions: [
FlatButton(
child: Text('OK'),
onPressed: () => Navigator.of(context).pop(),
),
],
),
);
},
tooltip: 'Show me the value!',
child: Icon(Icons.text_fields),
),
);
}
}
```
以上是一些Flutter常用组件的示例代码,您可以根据需要进行修改和扩展。