美文网首页
【Flutter】Flutter TextField 自适应高度

【Flutter】Flutter TextField 自适应高度

作者: Kean_Qi | 来源:发表于2019-03-08 22:07 被阅读0次

flutter中遇到这样一种情况,当设置TextFieldmaxLines的值大于1时,其初始高度会随着maxLines的变化而变化,完全不能像微信输入框一样高度可以随着文字行数变化,查看api发现将maxLines设置为null,再将keyboardType设置为TextInputType.multiline,就会随着高度变化而变化,但是这样的效果就是没有一个最大高度,故在外层包含一个Container并设置其maxHeightminHeight就可以完美解决。

代码如下:

return Container(
  color: Colors.red,
        constraints: BoxConstraints(
            maxHeight: 144.0,
            maxWidth: _screenWidth(),
            minHeight: 48.0,
            minWidth: _screenWidth()),
        padding: EdgeInsets.only(
            left: 16.0, right: 16.0, top: 8.0, bottom: 4.0),
        child: TextField(
          maxLines: null,
          keyboardType: TextInputType.multiline,
          decoration: InputDecoration.collapsed(
          hintText: "Write a comment",
          ),
      ),
);
double _screenWidth() {
    return MediaQuery.of(context).size.width;
  }

LinearProgressIndicator组件的使用

//LinearProgressIndicator本身不能设置高度,
          // 可以包一层父容器设置高度来间接设置LinearProgressIndicator的高度
          Container(
            padding: EdgeInsets.all(20),
            child: Container(
              height: 30, //设置高度
              child: LinearProgressIndicator(
                //0~1的浮点数,用来表示进度多少;
                // 如果 value 为 null 或空,则显示一个动画,否则显示一个定值
                value: 0.8,
                //animation类型的参数,用来设定进度值的颜色,默认为主题色
                valueColor:
                    new AlwaysStoppedAnimation<Color>(Colors.greenAccent),
                backgroundColor: Color(0xfff0f0f0),//背景颜色
                semanticsLabel: "这是semanticsLabel",
                semanticsValue: "这是semanticsValue",
              ),
            ),
          ),

相关文章

网友评论

      本文标题:【Flutter】Flutter TextField 自适应高度

      本文链接:https://www.haomeiwen.com/subject/nradpqtx.html