Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
592 of 1024 menu
◀ ▶

Виджет PaginatedDataTable

Виджет PaginatedDataTable расширяет DataTable постраничной навигацией. Колонки - columns, строки на странице - rowsPerPage, источник строк - source типа DataTableSource.

Синтаксис

PaginatedDataTable( columns: [ DataColumn(label: Text('abcde')), ], source: _MySource(), )

Параметры

Параметр Описание
columns Заголовки колонок.
source DataTableSource с данными строк.
rowsPerPage Сколько строк на одной странице.

Пример

Давайте покажем таблицу с двумя строками:

import 'package:flutter/material.dart'; void main() { runApp(const MaterialApp(home: PageTableDemo())); } class PageTableDemo extends StatelessWidget { const PageTableDemo({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: PaginatedDataTable( columns: [DataColumn(label: Text('abcde'))], source: _DemoSource(), ), ); } } class _DemoSource extends DataTableSource { @override DataRow? getRow(int index) { return DataRow(cells: [DataCell(Text('12345'))]); } @override bool get isRowCountApproximate => false; @override int get rowCount => 2; @override int get selectedRowCount => 0; }

Внизу таблицы кнопки переключения страниц.

Пример

Давайте зададим rowsPerPage:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: PaginatedDataTable( rowsPerPage: 5, columns: [DataColumn(label: Text('12345'))], source: _DemoSource(), ), ), ), ); } class _DemoSource extends DataTableSource { @override DataRow? getRow(int index) => DataRow(cells: [DataCell(Text('abcde'))]); @override bool get isRowCountApproximate => false; @override int get rowCount => 10; @override int get selectedRowCount => 0; }

На странице до пяти строк из десяти.

Смотрите также

  • виджет DataTable,
    таблица без пагинации
  • класс DataRow,
    строка данных
  • класс DataColumn,
    заголовок колонки
  • виджет SingleChildScrollView,
    прокрутка широкой таблицы
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить