Column中嵌入横向滚动的ListView(不固定ListVi

2022-08-09  本文已影响0人  _诸葛青

以子组件的高度,作为listview的高度。
优雅解决,性能也没有问题。
整理来源:B站:王叔不秃 的视频。
思路很强,做个记录。
注:Column虽然不可滑动,但在绘制中是假定高度无限大的。

    Column(
              children: [
                Stack(
                  children: [
                    const IgnorePointer(//为了防止TestWidget有点击事件
                      child: Opacity(opacity: 0.0, child: TestWidget()),//渲染步骤:布局、绘制、合成,当opacity: 0.0时,不会走,绘制、合成。即不用担心性能问题。
                    ),
                    const SizedBox(
                      width: double.infinity,//并不是无限大,跟你布局的约束有关
                    ),
                    Positioned.fill(//占满布局(要去了解stack布局原理,当有stack中有非Positioned包裹的组件时,会用该组件的大小)
                        child: ListView.builder(
                            scrollDirection: Axis.horizontal,
                            itemCount: 1000,
                            itemBuilder: (_, index) {
                              return const TestWidget();
                            }))
                  ],
                )
              ],
            )
上一篇下一篇

猜你喜欢

热点阅读