我有TextFormField一個附加的文本更改偵聽器。但是即使當我單擊文本欄位時也會呼叫偵聽器函式,有時甚至我在文本欄位外單擊。我正在使用顫振 2.5.2 版本。
import 'dart:math';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
void main() {
runApp(MaterialApp(
home: SearchView(),
));
}
class SearchView extends StatefulWidget {
@override
State<SearchView> createState() => _SearchViewState();
}
class _SearchViewState extends State<SearchView> {
final textController = TextEditingController();
final rng = new Random();
@override
void initState() {
this.textController.addListener(this._onTextChanged);
super.initState();
}
void _onTextChanged() {
print('text changed listener called ${rng.nextDouble()}');
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Brand'),
),
body: SingleChildScrollView(
child: Column(
children: [
TextFormField(
controller: this.textController,
),
],
),
),
);
}
}
uj5u.com熱心網友回復:
這似乎與這個問題有關。這是因為偵聽器實際上不僅在偵聽文本更改,還偵聽焦點更改。
您可以做些什么來防止這種情況并且只監聽文本更改是使用onChanged()TextFormField 上的方法,如下所示:
TextFormField(
onChanged: (String newText) => print('$newText'),
),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314881.html
