paginador añadido
This commit is contained in:
@@ -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(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user