如何解决聚焦时颤动文本不会改变
我有这个 Flutter 应用程序,我尝试使用 ascii 代码和所有这些东西。 事实证明,我正在使用颤振,并且我尝试在文本字段聚焦时更改文本,直到我失去焦点或更改屏幕然后再次返回之前它什么都不做。
我有这个文本字段,它每次我点击这些按钮之一时都会改变(见图片和 gif 链接),但是当文本字段聚焦时,变化没有得到应用。而如果我设置或按下按钮,则没有焦点的文本会发生变化。
这里使用的状态是 Getx。
class SymbolsPage extends StatelessWidget {
final hc = Get.put(HomeController());
final TextEditingController nameController = TextEditingController();
Logger logger = Logger();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.yellow[800],appBar: AppBar(
title: Text('name'),backgroundColor: appThemeData.primaryColor,),body: GetBuilder<HomeController>(
builder: (_) => Column(
children: [
Container(
margin: EdgeInsets.only(top: 30,left: 18,right: 18),child: CustomSearchText(
text: hc.nickName,enable: true,callback: () {
// HERE IS WHERE IT CHANGES when a text in gridview is pressed
nameController.text = hc.nickName;
// Todo: Fix bug when generating new nickname and does not change in textBox if focus is on
},controller: nameController,callback2: (text) {
TextSelection prevIoUsSelection = nameController.selection;
// HERE IS WHERE it should change(this is a callback for onchanged function
nameController.selection = prevIoUsSelection;
logger.v("${nameController.selection.start}");
_.changeNickName(text);
},//Todo: Use svg icon
Row(
mainAxisAlignment: MainAxisAlignment.center,children: [
IconButton(
icon: Icon(Icons.restore_sharp),onpressed: () => hc.generaterandomNickName(),IconButton(
icon: Icon(Icons.share_rounded),onpressed: () => hc
.generaterandomNickName(),//Todo: Add share nickname feature
),IconButton(
icon: Icon(Icons.copy_rounded),onpressed: () {
Clipboard.setData(ClipboardData(text: hc.nickName));
// nameController.selection = TextSelection.fromPosition(TextPosition(offset: nameController.text.length));
}),],const SizedBox(
height: 10,Expanded(
child: GridView.builder(
padding: EdgeInsets.only(left: 8,right: 8),gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
childAspectRatio: 3 / 2,crossAxisspacing: 20,mainAxisspacing: 20,crossAxisCount: 4,itemCount: symbols2.length,itemBuilder: (BuildContext ctx,index) {
return GestureDetector(
onTap: () {
hc.inputText(symbols2[index].symbol,nameController.selection.start);
print("nameController.selection.start");
},child: Container(
alignment: Alignment.center,child: Text(symbols2[index].symbol),decoration: Boxdecoration(
color: appThemeData.accentColor,borderRadius: BorderRadius.circular(15)),);
}),)
],bottomNavigationBar: BottomBar(),);
}
}
更多上下文的 Gif 预览:Link
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。