Flutter 中 ListView.builder 中的反向列表

Posted

技术标签:

【中文标题】Flutter 中 ListView.builder 中的反向列表【英文标题】:Reverse list in ListView.builder in Flutter 【发布时间】:2019-08-01 09:47:30 【问题描述】:

我想反转列表,我通过使用reverse: true, 实现了这一点。它正在工作,但列表已与底部对齐,并在列表中包含最少项目时在顶部显示空白。

 Expanded(child:  ListView.builder(
                shrinkWrap: true,
                reverse: true,
                controller: _scrollController,
                itemCount:order_response.orderDetails.length,
                itemBuilder: (context, position) return orderListItemTile(width,height,order_response,position);,
              ),)

但是当我删除expanded() 小部件时,当项目增加时,它会按像素溢出。

 ListView.builder(
            shrinkWrap: true,
            reverse: true,
            controller: _scrollController,
            itemCount:order_response.orderDetails.length,
            itemBuilder: (context, position) return orderListItemTile(width,height,order_response,position);,
          ),

【问题讨论】:

【参考方案1】:

除了反转列表之外,另一种解决方案可能是将 ListView 放在带有 alignment: Alignment.topCenterAlign 小部件中。在ListView 中也需要shrinkWrap: true

         Align(
            alignment: Alignment.topCenter,
            child: ListView.builder(
              reverse: true,
              shrinkWrap: true,
              ...
              ...
           )
         )

【讨论】:

【参考方案2】:

使用以下方法反转您的列表:

var reversedList = _response.orderDetails.reversed.toList();

【讨论】:

val 不能用于在 Dart 中声明变量。也许你对它在 Kotlin 中的用法感到困惑?在这种情况下,finalvar 或使用类型本身是合适的。 工作得很好。

以上是关于Flutter 中 ListView.builder 中的反向列表的主要内容,如果未能解决你的问题,请参考以下文章

Flutter混合开发:Android中如何启动Flutter

flutter项目中添加web支持

Flutter混合开发:Android中如何启动Flutter

flutter系列之:在flutter中使用导航Navigator

Flutter 中 stateless 和 stateful widget 的区别[Flutter专题60]

FlutterFlutter 混合开发 ( 关联 Android 工程与 Flutter 工程 | 安卓页面中嵌入 Flutter 页面 | 安卓中启动 Flutter 页面 )