如何在 Flutter 中同时滚动多个文本字段
Posted
技术标签:
【中文标题】如何在 Flutter 中同时滚动多个文本字段【英文标题】:How to Scroll multiple Textfields together in Flutter 【发布时间】:2021-05-15 13:51:57 【问题描述】:我有一种情况,其中 2 个文本字段被放置在一个堆栈小部件内,彼此重叠。如果数据超过屏幕大小,我是否可以垂直滚动两个文本字段?
Stack(
children: [
Container(
width: MediaQuery.of(context).size.width,
padding: EdgeInsets.fromLTRB(15, 8, 0, 0),
child: SyntaxView(
code: codeController.text,
syntax: Syntax.C,
syntaxTheme: SyntaxTheme.gravityDark(),
withZoom: true,
withLinesCount: true),
),
Container(
width: 362,
padding: EdgeInsets.fromLTRB(55, 12, 0, 0),
child: TextFormField(
scrollPhysics: NeverScrollableScrollPhysics(),
focusNode: codeFocus,
controller: codeController,
autofocus: true,
keyboardType: TextInputType.multiline,
maxLines: null,
style: TextStyle(
color: Color(0x00ffffff),
// color: Colors.yellow,
height: 1.35,
fontFamily: "CodeFont",
fontSize: 12,
),
decoration: InputDecoration(
border: InputBorder.none,
),
onChanged: (value)
setState(()
CODE = value;
// print("X : $codeController.text");
);
,
),
),
],
),
【问题讨论】:
使用SingleChildScrollView
【参考方案1】:
处理这种情况的一种简单方法是将您的内容包装在 ListView 中,该 ListView 处理其子项的滚动。以下是来自ListView 文档的 sn-p 示例:
ListView(
padding: const EdgeInsets.all(8),
children: <Widget>[
Container(
height: 50,
color: Colors.amber[600],
child: const Center(child: Text('Entry A')),
),
Container(
height: 50,
color: Colors.amber[500],
child: const Center(child: Text('Entry B')),
),
Container(
height: 50,
color: Colors.amber[100],
child: const Center(child: Text('Entry C')),
),
],
)
https://api.flutter.dev/flutter/widgets/ListView-class.html
【讨论】:
以上是关于如何在 Flutter 中同时滚动多个文本字段的主要内容,如果未能解决你的问题,请参考以下文章