Flutt业务用户的查询服务er的自由学习之路-Flutter进阶篇
在Flutter中,我们可以使用StreamBuilder
来构建一个动态的用户查询界面,以下是一个简单的例子:
import 'package:flutter/material.dart';
class UserQueryScreen extends StatefulWidget {
@override
_UserQueryScreenState createState() => _UserQueryScreenState();
}
class _UserQueryScreenState extends State<UserQueryScreen> {
// 假设这是一个获取用户的方法,返回一个Future<User>
Future<User> fetchUser(String userId) async {
// 这里应该是调用API获取用户数据的代码
// 现在我们模拟返回一个User对象
return Future.delayed(Duration(seconds: 2), () => User(userId, '张三'));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('用户查询'),
),
body: Center(
child: StreamBuilder<User>(
stream: Stream.fromFuture(fetchUser('user-123')), // 模拟用户查询流
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return CircularProgressIndicator();
} else if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasError) {
return Text('Error: ${snapshot.error}');
} else {
return Text('用户名: ${snapshot.data.name}');
}
}
return Text('未查询到用户');
},
),
),
);
}
}
class User {
final String id;
final String name;
User(this.id, this.name);
}
在这个例子中,我们创建了一个UserQueryScreen
类,它有一个fetchUser
方法来模拟从服务器获取用户数据的过程。在build
方法中,我们使用StreamBuilder
来处理用户查询的异步流程,显示一个进度指示器,用户数据,或者错误信息。这个例子演示了如何在Flutter中处理异步数据和构建响应式用户界面。
评论已关闭