Существует два способа доступа к тексту из TextField, как показано в документации Флаттера .
Первый - через обратный вызов onChanged, у которого есть параметр, который является текущим текстом.
TextField(
onChanged: (text) {
// do what you want with the text
},
);
Для более сложной обработки текста, включая доступ к нему извне метода build()
, вы можете использовать TextEditingController .
final _controller = TextEditingController();
Затем вы можете связать его с вашим TextField:
TextField(
// other parameters
controller: _controller,
);
Не забудьте утилизировать его!
@override
void dispose() {
// other dispose methods
_controller.dispose();
super.dispose();
}
Теперь вы можете либо установить, либо получить текст либо получить доступ к значению _controller.text
, либо изменить его. Например:
Получение: print(_controller.text);
Установка: _controller.text = 'newText' // now the TextField will have 'newText' written
Или вы можете прослушивать изменения, используя addListener
, поэтому всякий раз, когда текст обновляется, Функция по вашему выбору будет называться:
@override
void initState() {
super.initState();
_controller.addListener(_handleText);
// other code here
}
_handleText() {
// do what you want with the text, for example:
print(_controller.text);
}
Общее ядро, называемое druntime, было создано для D2. Низкоуровневая среда выполнения, такая как сборка мусора и создание потоков, ранее была барьером для взаимодействия Фобоса и Танго в одном проекте. Функциональность более высокого уровня Phobos зависела от времени выполнения Phobos, а также для Tango.
Было выпущено серьезное обновление для Phobos (фактически вчера (20.04.09)). Это обновление пытается использовать некоторые из новых функций D2 и представляет концепцию диапазонов, которые похожи на итераторы, но с которыми проще работать и которые более мощные. D2 Phobos сильно отличается от своего слабого аналога D1.
Tango - лучшая стандартная библиотека для D1. Порт D2 находится в работе и, вероятно, будет развиваться намного быстрее, когда D2 стабилен. Большой вопрос заключается в том, будут ли разработчики Tango обновлять его, чтобы в полной мере использовать возможности D2, или они просто сосредоточатся на том, чтобы заставить его работать с D2 так же, как с D1.
В отличие от двух библиотек, Фобос стремится уделять больше внимания созданию простых вещей, синтаксическому сахару, удобству и расширению возможностей того, что можно сделать в стандартной библиотеке. Это нечто среднее между STL и стандартной библиотекой Python, как бы странно это ни звучало. В танго больше похоже на Java. Он больше ориентирован на широкий спектр функций и изящную обработку необычных вариантов использования. Он остается в пределах разумного подмножества D (не так много метапрограммирования шаблонов и т. Д.,
Похоже, что по состоянию на октябрь они двигались к совместимости , но я не знаю, что произошло с тех пор ...
Редактировать:
Я также нашел этот , который, кажется, указывает на то, что нет никаких планов по фактическому слиянию:
Не будет никаких изменений в ситуация для D1. Однако D2, по состоянию на версия 2.020, была расщеплена Фобос в 2 библиотеки, druntime.lib и phobos.lib. Это должно позволить общий время выполнения будет использоваться с обоими Фобосом и танго. Пока нет планов объединить обе библиотеки или даже включить Танго с релизами DMD, это будет позволяют обе библиотеки использовать на в то же время без совместимости layer.
В версии 2.0 Tango сможет функционировать как служебная библиотека поверх общего ядра. Общее ядро уже на месте, однако проект Tango пока не поддерживает 2.0.
В версии 1.0 изменений не будет. Это потому, что спецификация 1.0 эффективно заморожена, чтобы позволить стабильной цели развиваться против.