问题描述
我有这个 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 (将#修改为@)