listView method
Implementation
FutureBuilder<List<QuickActionItem?>> listView({String? filter}) {
return FutureBuilder(
future: _getQuickActionsFromRepo(),
builder: (BuildContext context,
AsyncSnapshot<List<QuickActionItem?>> snapshot) {
if (snapshot.connectionState == ConnectionState.done &&
snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (BuildContext context, int index) {
if (snapshot.data![index] == null ||
(filter != null &&
filter.isNotEmpty &&
(!snapshot.data![index]!.name
.toLowerCase()
.contains(filter.toLowerCase()) &&
!snapshot.data![index]!.description
.toLowerCase()
.contains(filter.toLowerCase())))) {
return Container();
}
var data = snapshot.data![index]!;
return Hoverable(
child: ListTile(
tileColor: ButtonState.all(selectedList.contains(data)
? AppTheme().color.withOpacity(0.5)
: Colors.transparent),
title: Text(data.name),
subtitle: Text(data.description),
onPressed: () => toggleItem(data),
),
);
});
} else if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: ProgressRing());
} else {
return Center(child: Text('errordownloading-text'.i18n()));
}
});
}