54 lines
1.5 KiB
Dart
54 lines
1.5 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
import '../model/flood_station.dart';
|
|
|
|
class FloodStationListView extends StatelessWidget {
|
|
const FloodStationListView(
|
|
{super.key,
|
|
required List<FloodStation> stations,
|
|
required this.onItemTapped})
|
|
: _stations = stations;
|
|
|
|
final List<FloodStation> _stations;
|
|
final void Function(FloodStation) onItemTapped;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return ListView.separated(
|
|
separatorBuilder: (context, index) => Padding(
|
|
padding: const EdgeInsets.symmetric(horizontal: 15.0),
|
|
child: Divider(),
|
|
),
|
|
itemBuilder: (context, index) {
|
|
final item = _stations.elementAt(index);
|
|
return ListTile(
|
|
isThreeLine: true,
|
|
onTap: () => onItemTapped(item),
|
|
title: Text(item.label),
|
|
subtitle: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Row(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
Icon(Icons.home_outlined),
|
|
Padding(padding: EdgeInsets.only(left: 8)),
|
|
Text(item.town),
|
|
],
|
|
),
|
|
Row(
|
|
children: [
|
|
Icon(Icons.water),
|
|
Padding(padding: EdgeInsets.only(left: 8)),
|
|
Text(item.riverName),
|
|
],
|
|
)
|
|
],
|
|
),
|
|
);
|
|
},
|
|
itemCount: _stations.length,
|
|
);
|
|
}
|
|
}
|