date - 在ListView中倒计时(Flutter)

标签 date flutter dart android-recyclerview countdown

我想找到一种从日期创建倒计时并将其放入ListView的解决方案。我希望这不会使应用程序使用时减慢速度。
我已经有要保留的代码,它是带有图像和文本的RecyclerView。
这是代码,如果您还有其他需要,我会发送给您。

import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import '../recyclerview/data.dart';
import 'package:watch/constants.dart';


class ListViewExample extends StatefulWidget {
  @override 
  State<StatefulWidget> createState() {
    return new ListViewExampleState(
    );
  }
}

class ListViewExampleState extends State<ListViewExample>{
  List<Container> _buildListItemsFromItems(){
    int index = 0;
    return item.map((item){

      var container = Container(
        decoration: index % 2 == 0?
        new BoxDecoration(color: const Color(0xFFFFFFFF)):
          new BoxDecoration(
            color: const Color(0xFFFAFAF5)
          ),
        child: new Row(
          children: <Widget>[
            new Container(
              margin: new EdgeInsets.all(5.0),
              child: new CachedNetworkImage(
                imageUrl: item.imageURL,
                width: 200.0,
                height: 100.0,
                fit: BoxFit.cover,
              ),
            ),
            Expanded(
              child: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                Container(
                  padding: const EdgeInsets.only(bottom: 75.0 ),
                  child: Text(
                    item.title,
                    style: kItemTitle,
                  ),
                ),
                Container(
                  padding: const EdgeInsets.only(left: 15.0),
                  child:Text(
                    item.description,
                    style: kItemDescription,
                  ),
                ),
                ]),
            )
          ],
        )
      );
      index = index + 1;
      return container;
    }).toList();
  }
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
       appBar: AppBar(
         title: Text('Accueil', style: kAppBarStyle,),
          backgroundColor: Colors.white,  
          elevation: 0,
       ),
       body: ListView(
      children: _buildListItemsFromItems(),
    ),
    );
  }
}

谢谢!

最佳答案

建议您使用Listview.builder,而不是仅在需要延迟加载时将列表放入ListView中。
https://flutter.dev/docs/cookbook/lists/long-lists
ListView替换为ListView.builder

ListView.builder(
    itemCount: // items.length
    itemBuilder: (buildContext, index) {}, // define what Widget for each index
)
这是您的示例代码。 itemBuilder函数中已经存在索引。
...
  body: ListView.builder(
    itemCount: items.length,
    itemBuilder: (buildContext, index) {
      return Container(
        decoration: index % 2 == 0
            ? new BoxDecoration(color: const Color(0xFFFFFFFF))
            : new BoxDecoration(color: const Color(0xFFFAFAF5)),
        child: new Row(
          children: <Widget>[
            new Container(
              margin: new EdgeInsets.all(5.0),
              child: new CachedNetworkImage(
                imageUrl: item.imageURL,
                width: 200.0,
                height: 100.0,
                fit: BoxFit.cover,
              ),
            ),
            Expanded(
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                crossAxisAlignment: CrossAxisAlignment.start,
                children: <Widget>[
                  Container(
                    padding: const EdgeInsets.only(bottom: 75.0),
                    child: Text(
                      items[index].title,
                    ),
                  ),
                  Container(
                    padding: const EdgeInsets.only(left: 15.0),
                    child: Text(
                      items[index].description,
                    ),
                  ),
                ],
              ),
            )
          ],
        ),
      );
    },
  ),
...

关于date - 在ListView中倒计时(Flutter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64301652/

相关文章:

ruby-on-rails - 是否可以在 Rails 中的两个日期之间创建月份列表

android - 如何在Flutter中设置TextSpan的圆角

firebase - Flutter - 在 firebase firestore 中获取当前用户的文档

flutter - 如何在 searchDelegate 上突出显示正确的单词?

oracle - 如何在oracle中以dd/mm/yyyy格式将当前日期插入到DATE字段中

date - 画面 : Aggregate and Non-aggregate error with Date calculations

php - 上个月和下个月的报告

android - 从电子邮件启动应用程序时如何将数据从电子邮件传递到应用程序?

flutter - 限制TextField中允许的字符数

dart - 如何在子 Controller 中更新父 Controller 变量