Column中嵌入橫向滾動(dòng)的ListView(不固定ListView高度)

以子組件的高度,作為listview的高度。
優(yōu)雅解決,性能也沒有問題。
整理來源:B站:王叔不禿 的視頻。
思路很強(qiáng),做個(gè)記錄。
注:Column雖然不可滑動(dòng),但在繪制中是假定高度無限大的。

    Column(
              children: [
                Stack(
                  children: [
                    const IgnorePointer(//為了防止TestWidget有點(diǎn)擊事件
                      child: Opacity(opacity: 0.0, child: TestWidget()),//渲染步驟:布局、繪制、合成,當(dāng)opacity: 0.0時(shí),不會(huì)走,繪制、合成。即不用擔(dān)心性能問題。
                    ),
                    const SizedBox(
                      width: double.infinity,//并不是無限大,跟你布局的約束有關(guān)
                    ),
                    Positioned.fill(//占滿布局(要去了解stack布局原理,當(dāng)有stack中有非Positioned包裹的組件時(shí),會(huì)用該組件的大?。?                        child: ListView.builder(
                            scrollDirection: Axis.horizontal,
                            itemCount: 1000,
                            itemBuilder: (_, index) {
                              return const TestWidget();
                            }))
                  ],
                )
              ],
            )
最后編輯于
?著作權(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ù)。

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

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