#flutter #dart #flutter-layout #flutter-test
Вопрос:
Я проводил исследование ключей флаттера, и, насколько я вижу, у меня нет возможности гарантировать, что ключи виджета останутся одинаковыми во всех отладочных сборках, если ключ не был назначен при создании этого виджета.
Я ищу какие-либо ресурсы для управления деревом виджетов, назначая ему ключи или перестраивая элемент и предоставляя ему новый ключ.
Цель состоит в том, чтобы на экране появилось наложение, вы нажимаете на элемент виджета, даете ему имя, и в следующий раз, когда я запущу приложение (только в режиме отладки), оно должно иметь это имя в качестве ключа.
Я не знаю, возможно ли это, но если у кого-то есть некоторый опыт работы с деревом виджетов, я был бы признателен за любые рекомендации по этому вопросу. Я могу получить доступ к дереву через
WidgetsBinding.instance?.renderViewElement
И пройти через это. Но есть ли какой-нибудь способ, которым я могу сделать одно из следующих:
- Динамически назначайте ключ виджета виджету в дереве элементов
- Напишите мой собственный конструктор дерева виджетов / конструктор дерева элементов (я бы скопировал существующий flutter и внес небольшие изменения)
Комментарии:
1. Я не думаю, что это возможно. Почему бы вам просто не перестроить виджет с помощью нового ключа?
2. @intraector Это означает, что мне все еще нужно перейти к каждому виджету в каждом представлении для каждой базы кода и добавить ключ. Я пытаюсь этого избежать. Это отнимает очень много времени. И нам приходится делать это для многих кодовых баз, которые мы не писали. С тысячами виджетов.
3. А, понятно. К сожалению, это невозможно. Единственный вариант, который я имею в виду, — полнотекстовый поиск и замена, добавление ключа в каждый конструктор. Но это опасно и в некоторых случаях невозможно выполнить.
4. @intraector Я ценю этот комментарий. Я не думал об инструменте «вне» flutter, который помог бы нам в этом.