假设我有一个这样的列表:
final list = ["a", "a", "b", "a", "c"]
我用
ListView.Builder(
itemCount: list.length,
shrinkWrap: true,
builder: (context, index){
return ListTile(
title: Text(list.index),
onTap:(){}
)
}
)
有没有办法可以过滤列表,使其仅显示仅包含“a”的对象?
只需使用
List
的.where
方法过滤掉只包含字符串“a”的元素:
final listWithOnlyA = myCurrentList.where((element) => element == "a").toList();
用你的例子:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
final list = ["a", "a", "b", "a", "c"];
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final listWithOnlyA = list.where((element) => element == "a").toList();
return MaterialApp(
title: 'Material App',
home: Scaffold(
appBar: AppBar(
title: Text('Material App Bar'),
),
body: ListView.builder(
itemCount: listWithOnlyA.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(listWithOnlyA[index]),
);
},
),
),
);
}
}