flutter 表格布局根據(jù)文字動態(tài)高度

![image.png](https://upload-images.jianshu.io/upload_images/1306100-9658ac0c1d121256.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 Widget listview() {
    return Container(
      // padding: EdgeInsets.all(12),
      decoration: BoxDecoration(
        border: Border.all(width: 1,color: Color(0xffE5E6EB))
      ),
      child: Column(
        children: [
          _tabHeader(),
          ListView.separated(
            shrinkWrap: true,
            padding: EdgeInsets.zero,
            physics: const NeverScrollableScrollPhysics(),
            itemBuilder: itemBuilder,
            separatorBuilder: separatorBuilder,
            itemCount: 8,
          )
        ],
      ),
    );
  }

  Widget _tabHeader(){
    return Container(
      height: 30,
      child: IntrinsicHeight(
        child: Row(
          children: [
            _titleItems(title: "title[0]",flex: 1),
            _line(),
            _titleItems(title: "title[1]",flex: 1),
          ],
        ),
      ),
    );
  }

  _titleItems({required String title, required int flex}) {
    return Expanded(
        flex: flex,
        child: Container(
          height: 32,
          alignment: Alignment.center,
          decoration: const BoxDecoration(color: SCColors.color_EDEDF0),
          child: Text(
            title,
            style: const TextStyle(color: SCColors.color_5E5E66, fontSize: 12,fontWeight: FontWeight.w500),
          ),
        ));
  }

  Widget _line(){
    return const VerticalDivider(
        width: 1,
        thickness: 1,
        indent: 0,
        endIndent: 0,
        color: Color(0xffE5E6EB)
    );
  }

  Widget itemBuilder(BuildContext context, int index){

    return Container(
      // height: 34,
      decoration: BoxDecoration(
          color: index %2==0 ? const Color(0xffffffff) : const Color(0xffF7F8FA)
      ),
      child: IntrinsicHeight(
        child: Row(
          children: [
            _cellItem(title: "text2text2text2text2text2text2text2text2text2text2text2text2text2text2text2text2text2text2text2text2text2",flex: 1),
            _line(),
            _cellItem(title: "text2text2text2text2text2text2text2",flex: 1),
          ],
        ),
      ),
    );
  }

  _cellItem({required String title ,required int flex}){
    return Expanded(
        flex:flex,
        child: Padding(
          padding: const EdgeInsets.only(top: 6,bottom: 6,left: 6,right: 6),
          child: Text(
            title,
            textAlign: TextAlign.center,
            style: TextStyle(fontSize: 12, color: title == '是'?Colors.red:  Color(0xff5E5F66,),),
          ),
        )
    );
  }

  Widget separatorBuilder (BuildContext context ,int index){
    return const Padding(padding: EdgeInsets.only(left: 0,right: 0),child: Divider(height: 1,),);
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容