paginador añadido

This commit is contained in:
Abraham
2026-01-13 18:19:57 -08:00
parent 3b905f200c
commit 405c40d0b5

View File

@@ -25,6 +25,24 @@ class _GestorVideosPageState extends State<GestorVideosPage> {
PlutoGridStateManager? _stateManager;
bool _isLoading = true;
// Calcular pageSize dinámico según altura de pantalla
int _calculatePageSize(BuildContext context) {
final screenHeight = MediaQuery.of(context).size.height;
// Altura aproximada: toolbar (~140px) + padding (~48px) + row (~80px promedio)
// Altura disponible para el grid
final availableHeight = screenHeight - 200;
// Calcular cuántas filas caben (altura promedio de fila ~80px)
final rowsVisible = (availableHeight / 80).floor();
// Ajustar pageSize: mínimo 5, máximo 20
if (rowsVisible >= 15) return 20;
if (rowsVisible >= 12) return 15;
if (rowsVisible >= 8) return 10;
return 8; // Default para resoluciones pequeñas
}
@override
void initState() {
super.initState();
@@ -624,7 +642,7 @@ class _GestorVideosPageState extends State<GestorVideosPage> {
title: 'Acciones',
field: 'actions',
type: PlutoColumnType.text(),
width: 160,
width: 200,
enableEditingMode: false,
enableColumnDrag: false,
enableSorting: false,
@@ -669,12 +687,33 @@ class _GestorVideosPageState extends State<GestorVideosPage> {
onLoaded: (PlutoGridOnLoadedEvent event) {
_stateManager = event.stateManager;
_stateManager!.setShowColumnFilter(false);
// Configurar paginación dinámica según resolución
final pageSize = _calculatePageSize(context);
_stateManager!.setPageSize(pageSize, notify: true);
},
createFooter: (stateManager) {
return PlutoPagination(stateManager);
},
configuration: PlutoGridConfiguration(
style: plutoGridStyleConfig(context),
style: plutoGridStyleConfig(context).copyWith(
// Scrollbar SIEMPRE visible y más notorio
enableGridBorderShadow: true,
gridBorderRadius: BorderRadius.circular(12),
),
scrollbar: const PlutoGridScrollbarConfig(
// Scrollbar siempre visible
isAlwaysShown: true,
// Hacer scrollbar más grueso y notorio
scrollbarThickness: 10,
scrollbarThicknessWhileDragging: 14,
// Radio de borde para scrollbar
scrollbarRadius: Radius.circular(8),
scrollbarRadiusWhileDragging: Radius.circular(10),
),
columnSize: const PlutoGridColumnSizeConfig(
autoSizeMode: PlutoAutoSizeMode.scale,
),
localeText: const PlutoGridLocaleText.spanish(),
),
);
}