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

Класс ObjectKey

Класс ObjectKey хранит ссылку на объект. Ключи равны, если это один и тот же экземпляр, а не только равные по equals значения. Подходит, когда идентичность важнее содержимого.

Синтаксис

ObjectKey(object)

Пример

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

import 'package:flutter/material.dart'; class Item { Item(this.label); final String label; } void main() { var first = Item('abcde'); runApp( MaterialApp( home: Scaffold( body: Center( child: Text( first.label, key: ObjectKey(first), ), ), ), ), ); }

На экране по центру появится строка 'abcde' с ключом ObjectKey(first).

Пример

Давайте различим два объекта с одинаковым текстом:

import 'package:flutter/material.dart'; class Tag { Tag(this.name); final String name; } void main() { var a = Tag('12345'); var b = Tag('12345'); runApp( MaterialApp( home: Scaffold( body: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ Chip( key: ObjectKey(a), label: Text(a.name), ), Chip( key: ObjectKey(b), label: Text(b.name), ), ], ), ), ), ); }

На экране два Chip с текстом '12345' останутся разными элементами из за разных ObjectKey.

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

  • класс ValueKey,
    который сравнивает по значению, а не по ссылке
  • класс Key,
    базовый тип для ObjectKey
  • виджет Chip,
    которому можно задать key
  • класс GlobalKey,
    который тоже привязан к конкретному State
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить