Files
flutter-frame/lib/shared/widgets/data_table_widget.dart
2026-03-01 07:55:59 +09:00

50 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:pluto_grid/pluto_grid.dart';
class DataTableWidget extends StatelessWidget {
const DataTableWidget({
required this.columns,
required this.rows,
this.onRowDoubleTap,
this.onLoaded,
this.configuration,
super.key,
});
final List<PlutoColumn> columns;
final List<PlutoRow> rows;
final void Function(PlutoGridOnRowDoubleTapEvent)? onRowDoubleTap;
final void Function(PlutoGridOnLoadedEvent)? onLoaded;
final PlutoGridConfiguration? configuration;
@override
Widget build(BuildContext context) {
final theme = Theme.of(context);
return PlutoGrid(
columns: columns,
rows: rows,
onRowDoubleTap: onRowDoubleTap,
onLoaded: onLoaded,
configuration: configuration ??
PlutoGridConfiguration(
style: PlutoGridStyleConfig(
gridBackgroundColor: theme.colorScheme.surface,
rowColor: theme.colorScheme.surface,
activatedColor: theme.colorScheme.primaryContainer,
activatedBorderColor: theme.colorScheme.primary,
gridBorderColor: theme.colorScheme.outlineVariant,
borderColor: theme.colorScheme.outlineVariant,
cellTextStyle: theme.textTheme.bodyMedium!,
columnTextStyle: theme.textTheme.titleSmall!.copyWith(
fontWeight: FontWeight.bold,
),
),
columnSize: const PlutoGridColumnSizeConfig(
autoSizeMode: PlutoAutoSizeMode.scale,
),
),
);
}
}