我正在尝试理解表单输入的波动-以及如何使用Tab键在字段之间导航。互联网上的一个示例建议采用以下模式:
但是,在第一个字段中输入文本时,如果按Tab键,则第一个字段的文本中会添加标签空白。似乎我做错了Flutter,或者Flutter中有一个错误(当制表符更改上下文时,显然应该由图书馆负责从表单文本中剪切制表符,对吗?)
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
title: 'My app', // used by the OS task switcher
home: Material(child: content())));
}
Widget content() {
var _focus1 = FocusNode();
var _focus2 = FocusNode();
return Column(
children: [
TextField(
focusNode: _focus1,
textInputAction: TextInputAction.next,
),
TextField(
focusNode: _focus2,
textInputAction: TextInputAction.next,
),
],
);
}
我不知道为什么textInputAction不起作用,但是我在这里编写了一个解决方案:
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
title: 'My app', // used by the OS task switcher
home: Material(child: Test())));
}
class Test extends StatelessWidget {
var _focus1 = FocusNode();
var _focus2 = FocusNode();
@override
Widget build(BuildContext context) {
return Column(
children: [
TextField(
focusNode: _focus1,
textInputAction: TextInputAction.next,
onSubmitted: (_) => FocusScope.of(context).requestFocus(_focus2),
),
TextField(
focusNode: _focus2,
textInputAction: TextInputAction.next,
),
],
);
}
}