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

Класс PageStorageKey

Класс PageStorageKey наследует ValueKey и помечает виджет для PageStorage. Смещение прокрутки хранит PageStorageBucket. Один и тот же ключ на разных вкладках восстанавливает позицию списка.

Синтаксис

PageStorageKey('page')

Пример

Давайте сохраним прокрутку ListView через PageStorageKey:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: PageStorage( bucket: PageStorageBucket(), child: Scaffold( body: ListView( key: PageStorageKey<String>('list'), children: [ ListTile(title: Text('abcde')), ListTile(title: Text('12345')), ], ), ), ), ), ); }

На экране список с пунктами 'abcde' и '12345' запомнит прокрутку по PageStorageKey.

Пример

Давайте зададим разные ключи двум вкладкам:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: DefaultTabController( length: 2, child: PageStorage( bucket: PageStorageBucket(), child: Scaffold( appBar: AppBar( bottom: TabBar( tabs: [ Tab(text: 'abcde'), Tab(text: '12345'), ], ), ), body: TabBarView( children: [ ListView( key: PageStorageKey('a'), children: [Text('abcde')], ), ListView( key: PageStorageKey('b'), children: [Text('12345')], ), ], ), ), ), ), ), ); }

На экране каждая вкладка хранит свою прокрутку по отдельному PageStorageKey.

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

  • класс PageStorage,
    который предоставляет bucket для ключей
  • класс PageStorageBucket,
    где лежит сохранённое состояние
  • класс ValueKey,
    родитель PageStorageKey
  • виджет ListView,
    прокрутку которого часто сохраняют
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить