6

を使用する Flutter アプリを開発していTextfieldます。

私は次のTextFieldように宣言しています:

new TextField(
  controller : _controller,
  decoration : new InputDecoration(
      hintText: 'Message...'
  )
)

がウィジェットに表示されますTextFieldが、タップするとキーボードが自動的に閉じられ、コンソールに次のエラーが表示されます

E/SpannableStringBuilder(17860): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

Android(Samsung Galaxy Grand Prime、Android 5.1)のIntelliJでFlutterプラグインを使用してこれを実行しています。

どうすればこの問題を解決できますか?

編集: この回答 ( Android - SPAN_EXCLUSIVE_EXCLUSIVE スパンの長さをゼロにすることはできません) で見られるように、キーボード (Google と Samsung) を切り替えてみましたが、同じままです

4

3 に答える 3

3

完全なエラーは別の場所にあると思います。問題が 1 つの Android デバイスに固有のものである場合は、新しいフラッターの問題を開くことをお勧めします。

于 2017-05-22T00:01:42.727 に答える
2

同じエラーが発生しました。私の場合、問題はTextFormField. Formウィジェット内のキーが原因でした。キーを使用する場合、一般的なウィジェットはStatefulWidgetではなく でなければなりませんStatelessWidget

不正なコード

class MyWidget extends StatelessWidget{
  final GlobalKey<FormState> _formKey = GlobalKey<FormState>(); 
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      body: Form(
        key: _formKey,
        child: TextFormField(),
      ),
    );
  }
}

正しいコード

class MyWidget extends StatefulWidget{
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return _MyWidgetState();
  }
}

class _MyWidgetState extends State<MyWidget>{
  final GlobalKey<FormState> _formKey = GlobalKey<FormState>(); 
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      body: Form(
        key: _formKey,
        child: TextFormField(),
      ),
    );
  }
}
于 2019-06-16T19:11:56.793 に答える