Closed yaolv7 closed 1 year ago
sorry , I am English is not so good.
Quesion: TextFieldl input value, Keyboard opening or closing causes modified widget.model.msg values 问题描述:TextFieldl输入值修改widget.model.msg,键盘打开或关闭,导致已经修改的widget.model.msg值被重置了
plugin version:v5.8.4 & 5.9.0-beta 插件版本:v5.8.4 & 5.9.0-beta
flutter version: 3.10.5 • channel stable flutter版本:3.10.5 • channel stable
How to solve this problem? Thanks 有什么好办法解决这个问题?谢谢
exemple : 代码例子:
import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(375, 690), minTextAdapt: true, splitScreenMode: true, builder: (buildContext, widget) => MaterialApp( title: 'Keyboard Bug Demo', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), home: MyHomePage(model: Model(msg: DateTime.now().toString())), ), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({super.key, required this.model}); final Model model; @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: const Text('Keyboard Bug Demo'), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text( 'identityHashCode:${identityHashCode(widget.model)} \n msg:${widget.model.msg}', style: Theme.of(context).textTheme.headlineMedium, ), TextField( decoration: const InputDecoration( hintText: 'Open Keyboard', ), onChanged: (v) { setState(() { widget.model.msg = v; }); }, ), const SizedBox( height: 20, ), ElevatedButton( onPressed: () { FocusScope.of(context).requestFocus(FocusNode()); }, child: const Text( 'Close Keyboard', style: TextStyle(fontSize: 15), ), ), ], ), ), ); } } class Model { Model({ this.msg, }); String? msg; }
@yaolv7 Use child property.
sorry , I am English is not so good.
Quesion: TextFieldl input value, Keyboard opening or closing causes modified widget.model.msg values 问题描述:TextFieldl输入值修改widget.model.msg,键盘打开或关闭,导致已经修改的widget.model.msg值被重置了
plugin version:v5.8.4 & 5.9.0-beta 插件版本:v5.8.4 & 5.9.0-beta
flutter version: 3.10.5 • channel stable flutter版本:3.10.5 • channel stable
How to solve this problem? Thanks 有什么好办法解决这个问题?谢谢
exemple : 代码例子: