paginador añadido
This commit is contained in:
@@ -25,6 +25,24 @@ class _GestorVideosPageState extends State<GestorVideosPage> {
|
|||||||
PlutoGridStateManager? _stateManager;
|
PlutoGridStateManager? _stateManager;
|
||||||
bool _isLoading = true;
|
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
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
@@ -624,7 +642,7 @@ class _GestorVideosPageState extends State<GestorVideosPage> {
|
|||||||
title: 'Acciones',
|
title: 'Acciones',
|
||||||
field: 'actions',
|
field: 'actions',
|
||||||
type: PlutoColumnType.text(),
|
type: PlutoColumnType.text(),
|
||||||
width: 160,
|
width: 200,
|
||||||
enableEditingMode: false,
|
enableEditingMode: false,
|
||||||
enableColumnDrag: false,
|
enableColumnDrag: false,
|
||||||
enableSorting: false,
|
enableSorting: false,
|
||||||
@@ -669,12 +687,33 @@ class _GestorVideosPageState extends State<GestorVideosPage> {
|
|||||||
onLoaded: (PlutoGridOnLoadedEvent event) {
|
onLoaded: (PlutoGridOnLoadedEvent event) {
|
||||||
_stateManager = event.stateManager;
|
_stateManager = event.stateManager;
|
||||||
_stateManager!.setShowColumnFilter(false);
|
_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(
|
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(
|
columnSize: const PlutoGridColumnSizeConfig(
|
||||||
autoSizeMode: PlutoAutoSizeMode.scale,
|
autoSizeMode: PlutoAutoSizeMode.scale,
|
||||||
),
|
),
|
||||||
|
localeText: const PlutoGridLocaleText.spanish(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user