【问题标题】:How to keep the items in ListView.builder from re-rendering after some scroll?滚动后如何防止 ListView.builder 中的项目重新渲染?
【发布时间】:2020-12-24 07:05:49
【问题描述】:

我有一个 ListView.builder(),我不希望它的项目重新渲染,我尝试了这个解决方案 Solution 但是什么也没发生,它一直在重新渲染,我不知道是什么问题。

代码

StreamBuilder<Object>(
        stream: Firestore.instance
            .collection('Khatma Collection')
            .document('Khatma 1')
            .collection('Videos')
            .snapshots(),
        builder: (context, AsyncSnapshot snapshot) {
          if (snapshot.hasData) {
            return ListView.builder(
          shrinkWrap: true,
          itemCount: snapshot.data.documents.length,
          itemBuilder: (context, i) {
            var rng = new Random();
            int ii = rng.nextInt(4);
            if (ii == iii) {
            } else {
              iii = ii;
              var link = snapshot.data.documents[ii].data['Link'];
              var uploader = snapshot.data.documents[ii].data['Uploader'];
              final videoPlayerController =
                  VideoPlayerController.network(link);
              chewieController = ChewieController(
                allowMuting: true,
                autoInitialize: true,
                deviceOrientationsAfterFullScreen: orientation,
                allowFullScreen: true,
                aspectRatio: 16 / 9,
                videoPlayerController: videoPlayerController,
              );
              return SingleChildScrollView(
                child: Column(
                  children: [
                    Chewie(
                      controller: chewieController,
                    ),
                    ),
                  ],
                ),
              );
            }
          },
        );

【问题讨论】:

标签: flutter listview keep-alive


【解决方案1】:

你可以试试这个……

addRepaintBoundaries: false,

【讨论】:

    【解决方案2】:

    改用ListView()Column 小部件

    【讨论】:

    • 怎么样?我希望它获取 firebase 文档中的所有视频链接,然后将它们呈现在屏幕上。
    【解决方案3】:

    在 Listview.builder 中使用此属性: addAutomaticKeepAlives: true

    【讨论】:

      猜你喜欢
      • 2020-07-25
      • 2019-06-18
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 2017-01-04
      • 2020-03-09
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多