如何在列表日历中显示前 30 天?

How can i show previous 30 days in my list calendar?

我有一个日历,可以正常工作,但只显示当前日期和未来日期。我怎样才能设置前几天?我想突出显示当前的一天,但也有机会向右和向左滚动它。也许您已经遇到过这个问题。请帮助我。

这是一个整体class,你可以试试看

class _MyHomePageState extends State<MyHomePage> {
  int currentDateSelectedIndex = 0; //For Horizontal Date
  DateTime selectedDate = DateTime.now(); // TO tracking date
  late var selectedDateNew;
  ScrollController scrollController = ScrollController(); //Scroll Controller for ListView
  List<String> listOfMonths = [
    "January","February","March","April","May","June","July","August","September","October","November","December"
  ];


  @override
  void initState() {
    selectedDate = DateTime.now().subtract(Duration(days: 30));
    selectedDateNew = formatDate(selectedDate, [yyyy, '-', mm, '-', dd]);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    final FixedExtentScrollController itemController = FixedExtentScrollController();
    return Scaffold(
        body: Center(
          child: calendar_carousel(),
        )
    );
  }


  Widget calendar_carousel() {
    return Container(
      height: 100,
        child: ScrollSnapList(
          padding: EdgeInsets.zero,
          itemBuilder: _buildDaysList,
          allowAnotherDirection: true,
          itemSize: 196,
          initialIndex: 0, //i tryed to put here another number, i didn't work
          dynamicItemSize: true,
          selectedItemAnchor: SelectedItemAnchor.MIDDLE,
          onReachEnd: (){
            print('Done!');
          },
          itemCount: 365,
          onItemFocus: (int) {
            setState(() {
              scrollController.animateTo(0, duration: Duration(days: int), curve: Curves.bounceIn);
              currentDateSelectedIndex = int;
              selectedDate = DateTime.now().add(Duration(days: int));
              selectedDateNew = formatDate(selectedDate, [yyyy, '-', mm, '-', dd]);
              //fetch(selectedDateNew);
            });
          },
        )
    );
  }

  Widget _buildDaysList(BuildContext context, int index){
    return Container(
      child: Container(
        color: Colors.blue,
        width: 196,
        height: 80,
        child: Center(
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(DateTime.now().add(Duration(days: index)).day.toString()),
              SizedBox(
                width: 10,
              ),
              Text(listOfMonths[DateTime.now().add(Duration(days: index)).month - 1].toString(),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

我使用了依赖项

你用过吗

var lastMonth = new DateTime(date.year, date.month - 1, date.day);