Flutter Failed assertion: line 1785 pos 12: 'hasSize'

報(bào)錯(cuò) :Failed assertion: line 1785 pos 12: 'hasSize'

原因:1. SingleChildScrollView 嵌套 ListView、GridView報(bào)錯(cuò) ,SingleChildScrollView 和 ListView 都有滾動(dòng)
屬性physics 他們默認(rèn)是都是可以滾動(dòng)的
2. SingleChildScrollView 添加了Expanded或者Flexible

解決方法: 1. 增加shrinkWrap: true 和 physics: NeverScrollableScrollPhysics()即可。

SingleChildScrollView(
  child: Column(
    children: <Widget>[
      GridView.count(
        crossAxisCount: 2,
        children: <Widget>[],
        physics: NeverScrollableScrollPhysics(),
        shrinkWrap: true,
      ),
      ListView.builder(
        itemCount: 10,
        itemBuilder: (context, index) {
          return Text("test");
        },
        physics: NeverScrollableScrollPhysics(),
        shrinkWrap: true,
      )
    ],
  ),
)

2.固定父級(jí)組件的高度

SingleChildScrollView(
    child: ConstrainedBox(
        constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height),
        child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
                Expanded(
                    child: Text('Hello World!'),
                ),
            ],
        ),
    )
)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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