Untitled
unknown
plain_text
2 years ago
2.3 kB
12
Indexable
import 'package:beamer/beamer.dart';
import 'package:flutter/material.dart';
import 'package:myproject/items/model/item.dart';
class MyItemList extends StatelessWidget {
const MyItemList(this.data, {super.key});
final List<MyItem> data;
@override
Widget build(BuildContext context) {
return ListView.builder(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
itemCount: data.length,
itemBuilder: (context, index) {
final item = data[index];
return MyItemWidget(item);
},
);
}
}
class MyItemWidget extends StatelessWidget {
const MyItemWidget(this.item, {super.key});
final MyItem item;
@override
Widget build(BuildContext context) {
final textTheme = Theme.of(context).textTheme;
return InkWell(
onTap: () {
context.beamToNamed('/items/${item.id}');
},
child: Container(
padding: const EdgeInsets.all(8),
decoration: const BoxDecoration(
border: Border(top: BorderSide(color: Colors.grey)),
),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
width: 64,
height: 64,
child: ClipRRect(
borderRadius: const BorderRadius.all(Radius.circular(8)),
child: Image.network(item.image, fit: BoxFit.cover),
),
),
const SizedBox(width: 12),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
item.name,
style: textTheme.bodyLarge
?.copyWith(fontWeight: FontWeight.bold),
),
const Text('Title'),
const Row(
children: [
Icon(Icons.star, color: Colors.amber, size: 18),
SizedBox(width: 4),
Text('bla'),
],
),
Text(
item.description,
overflow: TextOverflow.ellipsis,
maxLines: 1,
),
],
),
],
),
),
);
}
}Editor is loading...
Leave a Comment