如何在Flutter中滚动到包含扩展项的列中的TextView?

时间:2019-01-18 06:38:38

标签: flutter

说我们有下面的代码。如果选择最后一个TextField,则布局会被压缩,因为由于键盘的显示,它试图在较小的空间中容纳。为了解决这个问题,我可以在父Scaffold上将resizeToAvoidBottomPadding属性设置为false,但是现在TextField将隐藏在键盘后面。如果我尝试添加SingleChildScrollView,则Column的高度将无限大,因此无法使用Expanded。

在使用Expanded时是否有任何方法可以在视图中滚动TextField(或在Scrollable Widget中按比例划分屏幕上的空间)?谢谢。

Column(
    children: <Widget>[
        Expanded(
            child: TextField()
        ),
        Expanded(
            child: TextField()
        ),
        Expanded(
            child: TextField()
        ),
        Expanded(
            child: TextField()
        ),
        Expanded(
            child: TextField()
        ),
    ]
);

2 个答案:

答案 0 :(得分:0)

使用CustomScrollView并在末尾限制SliverToBoxAdapter无限,希望它能起作用。

CustomScrollView(
slivers: <Widget>[
SliverList(),
SliverToBoxAdapter(
child: new Container(height: 2.0, color: Colors.white),
),
]
);

答案 1 :(得分:0)

您可以获取屏幕的高度,然后除以TextField的数量,请检查此代码:

{{1}}