api - 如何在flutter中使用rest api在下拉列表中显示数据
问题描述
这是我的api 数据结构。使用这个 api,我已经获取了数据。
源代码在这里。现在我想在下拉列表中显示数据(例如 pPROJTNAME),用户可以选择如下图所示的列表。如何做到这一点?
这是main.dart
import 'package:flutter/material.dart';
import 'package:get_api/model.dart';
import 'package:get_api/services.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: JsonParseDemo(),
);
}
}
class JsonParseDemo extends StatelessWidget {
/* ---------------------------------------------------------------------------- */
const JsonParseDemo({Key key}) : super(key: key);
/* ---------------------------------------------------------------------------- */
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Hi!'),
centerTitle: true,
),
body: FutureBuilder<User>(
future: NetService.fetchTickesInfo(),
builder: (context, snapshot) => snapshot.hasData
? ListView.builder(
itemCount: snapshot.data.projectInfos.length,
itemBuilder: (context, index) => Card(
child: Column(
children: [
Text(snapshot.data.projectInfos[index]?.pROJTNAME ??
'--'),
Text(snapshot.data.projectInfos[index]?.pROJTDESC ??
'--'),
],
),
),
)
: snapshot.hasError
? Text('Something was wrong!: ${snapshot.error}')
: Center(
child: CircularProgressIndicator(),
)),
);
}
}
解决方案
您可以使用 DropdownButton 小部件:https ://api.flutter.dev/flutter/material/DropdownButton-class.html
推荐阅读
- kubernetes-ingress - 如果 Ingress 是 Nginx,你真的需要 Nginx 作为 Pod 中的容器吗?
- firefox-addon - Firefox 插件 - 在弹出窗口中使用 `input[type="file"]`
- php - Composer 无法执行 git clone
- javascript - 如何将单词变为数字?首先在 1 等
- html - 将两种颜色效果变成圆形img
- python - 使用 Python 和 BeautifulSoup 抓取表格
- r - R Shiny Application 移动图位置
- swiftui - 崩溃导致索引超出范围——尽管我确定索引没有超出范围
- amazon-web-services - 如何动态更改 DefinitionBody 内的 S3 路径
- python - DRF:在一个请求中过滤多个字段