【发布时间】:2020-08-15 00:13:09
【问题描述】:
我尝试创建一个带有清除按钮的 TextField,但是当我输入一些值时,没有显示我想要的清除按钮。似乎它无法检测到_firstNameController.text 的更改。我该如何解决这个问题?
class TextFieldWithClearBtn extends StatefulWidget {
@override
_TextFieldWithClearBtnState createState() => _TextFieldWithClearBtnState();
}
class _TextFieldWithClearBtnState extends State<TextFieldWithClearBtn> {
final TextEditingController _firstNameController = TextEditingController();
@override
void dispose {
super.dispose();
_firstNameController.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
child: TextFormField(
controller: _firstNameController,
decoration: InputDecoration(
labelText: "First name",
suffixIcon: _firstNameController.text.isNotEmpty
? GestureDetector(
onTap: () {
WidgetsBinding.instance.addPostFrameCallback((_) => _firstNameController.clear());
},
child: Icon(Icons.clear, color: Colors.black38),
)
: null
),
),
);
}
}
【问题讨论】:
标签: flutter dart flutter-layout