Flutter中遇到的坑

键盘弹出界面上移

Scaffold控件中有一个属性resizeToAvoidBottomPadding,true时键盘弹出界面上移,false键盘弹出界面不上移即遮挡界面。

ListView.builder不在Scaffold布局下,四周会有部分空白

MediaQuery.removePadding(
              child: ListView.builder(
                itemBuilder: (BuildContext buildContext, int index) {
                  return new Container(
                      padding: EdgeInsets.symmetric(vertical: 5),
                      child: Text(
                        '${items[index]}',
                        style: TextStyle(fontSize: 15, color: Colors.black),
                      ));
                },
                itemCount: items.length,
              ),
              removeTop: true,//去除上部空白
              removeBottom: true,,//去除下部空白
              context: context,
            ),

A RenderFlex overflowed by 3.6 pixels on the bottom.

这是界面在渲染时,高度超出了控件的高度,在用hero控件时特为频繁出现,可以对超出的控件使用Expanded包裹。另外在使用hero时如果内容中有文字,在回到这个页面时它的大小会从默认大小样式然后压缩成目标样式,可以显示写上它的样式属性,这样就不会回到默认样式了。
Flutter中遇到的坑_第1张图片

RaisedButton中child底部有空白

这是因为raisedButton源码中默认有最小高度,所有设置materialTapTargetSize: MaterialTapTargetSize.shrinkWrap即可

 Size minSize;
    switch (widget.materialTapTargetSize) {
      case MaterialTapTargetSize.padded:
        minSize = const Size(48.0, 48.0);
        break;
      case MaterialTapTargetSize.shrinkWrap:
        minSize = Size.zero;
        break;
    }

    return Semantics(
      container: true,
      button: true,
      enabled: widget.enabled,
      child: _InputPadding(
        minSize: minSize,
        child: result,
      ),
    );

键盘弹起收回,出现控件超出屏幕的黄线

给页面添加SingleChildScrollView控件

你可能感兴趣的:(flutter)