Flutter Text、ListView、ScrollView高度自适应

Text高度自适应核心逻辑

Row+Expanded包裹Text文本

ListView、ScrollView这一类的Item高度自适应方式

  Widget _itemView(item) {
    return Container(
      margin: EdgeInsets.only(
        top: setHeight(12),
        bottom: setHeight(20),
        left: setWidth(32),
        right: setWidth(32),
      ),
      child: Ink(
        decoration: BoxDecoration(
          color: XColors.greyF8,
          borderRadius: BorderRadius.circular(setWidth(10)),
        ),
        child: InkWell(
          borderRadius: BorderRadius.circular(setWidth(10)),
          onTap: () {},
          child: Container(
            padding: EdgeInsets.symmetric(
              vertical: setWidth(20),
              horizontal: setWidth(24),
            ),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Container(
                  //使用Row+Expanded包裹Text文本就会自适应高度
                  child: Row(
                    children: [
                      Expanded(
                        child: Text(
                          "测试测试测试测试测试测试测试测试测试测试测试测"
                          "测试测试测试测试测试测试测试测试测试测试测试测"
                          "试测试测试测试测试测试测试测试测试测试测试测试",
                          style: TextStyle(
                            color: XColors.textColor33,
                            fontSize: setSp(28),
                          ),
                        ),
                      ),
                    ],
                  ),
                ),
                Gaps.getHeight20(),
                Container(
                  //使用Row+Expanded包裹Text文本就会自适应高度
                  child: Row(
                    children: [
                      Expanded(
                        child: Text(
                          "测试测试测试测试测试测试测试测试测试测试测试测"
                          "测试测试测试测试测试测试测试测试测试测试测试测"
                          "试测试测试测试测试测试测试测试测试测试测试测试",
                          style: TextStyles.getColor99Size24(),
                        ),
                      ),
                    ],
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }

Text自适应高度

  Widget _text() {
    return SizedBox(
      //width很重要,不设置宽度的话内容会不显示,Row要知道父Widget宽度
      width: ScreenUtil().screenWidth,
      //使用Row+Expanded包裹Text文本就会自适应高度
      child: Row(
        children: [
          Expanded(
            child: Text(
              "测试测试测试测试测试测试测试测试测试测试测试测"
              "测试测试测试测试测试测试测试测试测试测试测试测"
              "试测试测试测试测试测试测试测试测试测试测试测试",
              style: TextStyle(
                fontSize: setSp(28.0),
                color: Colors.white,
              ),
            ),
          ),
        ],
      ),
    );
  }

你可能感兴趣的:(Flutter Text、ListView、ScrollView高度自适应)