update history and start
This commit is contained in:
@ -18,7 +18,7 @@ class _HistoryPageState extends State<HistoryPage> {
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text("History"),
|
||||
title: Text("通過履歴"),
|
||||
),
|
||||
body: SingleChildScrollView(
|
||||
child: Column(
|
||||
@ -46,25 +46,15 @@ class _HistoryPageState extends State<HistoryPage> {
|
||||
itemCount: dests.length,
|
||||
itemBuilder: (ctx, index) {
|
||||
print("--- photo ${dests[index].checkin_image!} ----");
|
||||
return ListTile(
|
||||
dense: true,
|
||||
title: Text(dests[index].name ?? ""),
|
||||
subtitle:
|
||||
Text("${dests[index].sub_loc_id} : ${dests[index].name}"),
|
||||
leading: dests[index].checkin_image != null
|
||||
? Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Container(width: 100, height: 100, child: Image.file(File(dests[index].checkin_image!))),
|
||||
dests[index].buypoint_image != null ?
|
||||
Container(width: 100, height: 100, child: Image.file(File(dests[index].buypoint_image!)))
|
||||
:
|
||||
Container(),
|
||||
],
|
||||
)
|
||||
: Container(),
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: CustomWidget(title: dests[index].name!,
|
||||
subtitle: "${dests[index].sub_loc_id} : ${dests[index].name}",
|
||||
image1: dests[index].checkin_image != null ? Image.file(File(dests[index].checkin_image!)) : null,
|
||||
image2: dests[index].buypoint_image != null ? Image.file(File(dests[index].buypoint_image!)) : null,
|
||||
),
|
||||
);
|
||||
|
||||
}));
|
||||
} else {
|
||||
return Center(child: Text("No checkin yet"));
|
||||
@ -84,3 +74,54 @@ class _HistoryPageState extends State<HistoryPage> {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class CustomWidget extends StatelessWidget {
|
||||
final Image? image1;
|
||||
final Image? image2;
|
||||
final String title;
|
||||
final String subtitle;
|
||||
|
||||
CustomWidget({
|
||||
this.image1,
|
||||
this.image2,
|
||||
required this.title,
|
||||
required this.subtitle,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Container(
|
||||
width: 104, // 50 (width of each image) + 2 (space between images) + 2*1 (padding on both sides)
|
||||
child: Row(
|
||||
children: [
|
||||
if (image1 != null) SizedBox(width: 50, height: 100, child: image1,),
|
||||
if (image1 != null && image2 != null) SizedBox(width: 2),
|
||||
if (image2 != null) SizedBox(width: 50, height: 100, child: image2,),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(width: 10),
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
title,
|
||||
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
|
||||
maxLines: null, // Allows the text to wrap onto an unlimited number of lines
|
||||
),
|
||||
Text(
|
||||
subtitle,
|
||||
style: TextStyle(fontSize: 16),
|
||||
maxLines: null, // Allows the text to wrap onto an unlimited number of lines
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user