build method
- @override
- BuildContext context,
- RockModel model
override
Builds the UI according to the state in model
.
Implementation
@override
Widget build(BuildContext context, RockModel model) => Column(
children: [
PageHeader(
pageIndex: index,
children: [
Padding(
padding: const EdgeInsets.all(4),
child: Text(
"Rocks & Minerals",
style: context.textTheme.headlineMedium,
),
),
const Spacer(),
],
),
Expanded(
child: ListView(
shrinkWrap: true,
padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16),
children: [
SearchBar(
hintText: "Search for a rock or characteristic",
hintStyle: WidgetStatePropertyAll(context.textTheme.bodyMedium),
controller: model.controller,
onChanged: model.search,
backgroundColor: WidgetStatePropertyAll(context.colorScheme.surfaceBright),
trailing: [
IconButton(onPressed: model.clear, icon: const Icon(Icons.clear)),
],
),
const SizedBox(height: 12),
for (final rock in model.filteredRocks)
RockWidget(rock),
],
),
),
],
);