Класс ValueKey
Класс ValueKey наследует
Key
и хранит значение типа T.
Два ValueKey равны, если равны их значения.
Удобно для списков с id строки или числа.
Синтаксис
ValueKey(value)
Пример
Давайте подпишем пункты ListView ValueKey:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: ListView(
children: [
ListTile(
key: ValueKey('abcde'),
title: Text('abcde'),
),
ListTile(
key: ValueKey('12345'),
title: Text('12345'),
),
],
),
),
),
);
}
На экране два пункта с подписями 'abcde'
и '12345' сохранят State при сортировке по ключу.
Пример
Давайте возьмём ValueKey с числовым значением:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text(
'abcde',
key: ValueKey(1),
),
),
),
),
);
}
На экране по центру строка 'abcde'
с ключом ValueKey(1).