🎉
複数のテキストフィールドを移動する際に起こったエラー
おこったこと
import 'package:flutter/material.dart';
class TestWidgets extends StatefulWidget {
const TestWidgets({super.key});
State<TestWidgets> createState() => _TestWidgetsState();
}
class _TestWidgetsState extends State<TestWidgets> {
Widget build(BuildContext context) {
return Column(
children: [
TextField(
controller: TextEditingController(),
),
TextField(
controller: TextEditingController(),
),
],
);
}
}
このようなコードで
こんな画面の作り、日本語で文字を入力した後確定を押さず(文字に下線が出ている状態)にもう一つのテキストフィールドに移るを繰り返すと以下のようなエラーが出る
════════ Exception caught by services library ══════════════════════════════════
Range start 14 is out of text of length 2
'package:flutter/src/services/text_input.dart':
package:flutter/…/services/text_input.dart:1
Failed assertion: line 968 pos 12: 'range.start >= 0 && range.start <= text.length'
════════════════════════════════════════════════════════════════════════════════
解決策
TextFieldをTextFromFieldに変えるだけです!
Discussion