我正在构建一个包含备注字段的表单。我希望用户能够点击enter
/ return
并开始一个新段落。
我能够创建一个将接受并显示大量文本的字段。但是我特别希望用户能够创建段落,否则他们的注释只是一个长字符串而没有间断,因此很难阅读和编辑。
我提出了一个问题here,但被告知我只需要做类似this的事情即可。
这不想要我想要的。我正在尝试做类似this的事情。
似乎应该可行(https://github.com/flutter/flutter/issues/43935)。我不知道我在想什么。
我正在为Web构建,而不是iOS或Android。
main.dart:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) =>Scaffold(
body: Center(
child: Center(
child:TextFormField(
textInputAction: TextInputAction.newline,
keyboardType: TextInputType.multiline,
maxLines: 10,
),
),
),
);
}
pubspec.yaml:
name: textformfield_demo
description: A new Flutter project.
version: 1.0.0+1
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.2
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
答案 0 :(得分:0)
具有颤动的属性以设置最大和最小行。您可以设置maxLine:(int)或maxLine:null,这里maxLine:(int)将用户限制为(int)行数,而maxLine:null将提供没有限制的新行文本。
As-
class MultiLineEt extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return _MyHomePageState();
}
}
class _MyHomePageState extends State<MultiLineEt> {
@override
Widget build(BuildContext context) =>Scaffold(
body: ListView(children: <Widget>[
new TextField(
keyboardType: TextInputType.multiline,
maxLines: null,
),
],
) );
}
使用ListView防止像素错误