flutter - Flutter 在 ListView 中加载 Future 列表?
问题描述
嗨,我如何在 ListView 或 ListViebuilder 中加载此列表?
Future<List<bool>> getBoolList() async{
List<bool> prefList = [];
var sharedPreferences = await SharedPreferences.getInstance();
Set<String> keys = sharedPreferences.getKeys();
for(int i=0; i<keys.length ; i++){
bool value = sharedPreferences.getBool(keys.elementAt(i));
prefList.add(value);
}
return prefList;
}
List<bool> list = await getBoolList();
我是如何到达那里 的 Flutter SharedPreferences 如何加载所有保存的?
我最喜欢的.dart
import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';
// ignore: must_be_immutable
class Favoriten extends StatefulWidget {
@override
_FavoritenState createState() => _FavoritenState();
}
class _FavoritenState extends State<Favoriten> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Favorites'),
),
body: // MyList
);
}
}
解决方案
FutureBuilder<List<bool>>(
future: getBoolList(),
builder: (context, future){
if(!future.hasData)return Container(); // Display empty container if the list is empty
else {
List<bool> list = future.data;
return ListView.builder(
itemCount: list.length,
itemBuilder: (context, index){
return // Your widget Here ; // Put your widget, such as container, decoratedBox, listTiles, button etc
}
);
}
}
),
例子
FutureBuilder<List<bool>>(
future: getBoolList(),
builder: (context, future){
if(!future.hasData)return Container(); // Display empty container if the list is empty
else {
List<bool> list = future.data;
return ListView.builder(
itemCount: list.length,
itemBuilder: (context, index){
return Container(
child: Text(list[index].toString())
);
}
);
}
}
),
推荐阅读
- vue.js - nuxt.js:有没有办法在页面刷新时阻止对服务器的请求
- java - 映射异常:找不到具有逻辑名称的列
- swift - NSPopover 解雇不会将其从父级的presentedViewControllers(Xcode 11)中删除
- excel - VBA 保存到子文件夹
- c++ - 类成员值的合法或错误成员使用?
- css - 如何更改 Ionic 4 中子弹滑块的道具?
- c# - 如何通过C#在word文档表中添加行
- ios - iOS 13 替代“setAnimationCurve”
- javafx - VBox .getHeight() 直到 .setOnAction 完成后才会改变
- python - .zip 文件在使用 gmail api 发送并使用 zlib 压缩时损坏