我在Container
中放入了一个带有clear button
和hintText
的textField
。我希望当textField
有焦点时,clear button
会出现,当失去焦点时,按钮会消失。但当我收起键盘(textField
失去焦点(时,输入内容和hintText
都消失了。那怎么了?
Container(
width: 330,
height: 40,
alignment: Alignment.centerLeft,
child: TextField(
controller: inputController,
focusNode: focusNode,
style: MyTextStyle.level9,
keyboardType: TextInputType.number,
decoration: InputDecoration(
hintText: 'hint text',
hintStyle: MyTextStyle.grey,
border: InputBorder.none,
suffixIcon: focusNode.hasFocus ? IconButton(
icon: MyIcon.CloseIcon,
onPressed: () {
inputController.clear();
}
) : Container(),
filled: true,
),
),
decoration: BoxDecoration(
color: MyColor.MidGray,
),
),
用于suffixIcon
的Container
小部件占用了所有可用空间,使用SizedBox
小部件可以很好地工作并产生预期的行为。
我用你的代码添加了一个例子:
Container(
width: 330,
height: 40,
alignment: Alignment.centerLeft,
child: TextField(
controller: inputController,
focusNode: focusNode,
style: MyTextStyle.level9,
keyboardType: TextInputType.number,
decoration: InputDecoration(
hintText: 'hint text',
hintStyle: MyTextStyle.grey,
border: InputBorder.none,
suffixIcon: focusNode.hasFocus
? IconButton(
icon: MyIcon.CloseIcon,
onPressed: () {
inputController.clear();
})
// use a SizedBox widget instead
: SizedBox.shrink(),
filled: true,
),
),
decoration: BoxDecoration(
color: MyColor.MidGray,
),
),