拆分小部件,如何将其他小部件中的信息添加到主小部件中?

时间:2020-06-03 23:06:55

标签: android-studio flutter dart visual-studio-code implementation

我是Flutter的新手,我听不懂一些东西。我拆分了一些小部件以改善我的系统,但我不知道如何从其他页面添加数据。我想显示一周中的几天,而这天我又拆分了另一部件“ DaysOfWeek.dart”,并在其中编写了此类部件的类名main.dart文件,但是我有一个实现错误。我该如何解决? main.dart

import 'package:calendar_app/dayofweeks.dart';
import 'package:flutter/material.dart';

void main()=>runApp(MyApp());


class MyApp extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Calendar',

      home: MyHomePage(),


    );
  }
}


class MyHomePage extends StatefulWidget {
  var calculateDays;
  @override

  _MyHomePageState createState() => _MyHomePageState();

}

class _MyHomePageState extends State<MyHomePage> {


  @override
  Widget build(BuildContext context) {

    return Scaffold(
      body: SingleChildScrollView(
        child:Column ( children: <Widget>[
         Row( 
           DaysOfWeek(),), // here is the my small widget 
         ],
         ),

         ),);

} }

dayofweeks.dart:

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
class DaysOfWeek extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
   List<DateTime> calculateDays(DateTime startDate, DateTime endDate) {
    List<DateTime> days = [];
    for (int i = 0; i <= endDate.difference(startDate).inDays; i++) {
      days.add(startDate.add(Duration(days: i)));
    }
    return days;
  }

    // TODO: implement build
    throw UnimplementedError();
  }
}

1 个答案:

答案 0 :(得分:1)

我希望这会有所帮助:

main.dart:

import 'dayofweeks.dart'; //1st
import 'package:flutter/material.dart';

void main() => runApp(MaterialApp(
      title: 'Flutter Calendar',
      home: Scaffold(
        body: MyHomePage(),
      ),
    ));

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SingleChildScrollView(
          child: Column(children: <Widget>[
        (Row(
          children: <Widget>[DaysOfWeek()],
        ))
      ])),
    );
  }
}

dayofweeks.dart:

import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

class DaysOfWeek extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
   List<DateTime> calculateDays(DateTime startDate, DateTime endDate) { //Sorry I don't understand the calculateDays() function
    List<DateTime> days = [];
    for (int i = 0; i <= endDate.difference(startDate).inDays; i++) {
      days.add(startDate.add(Duration(days: i)));
    }
    return days;
  }


    throw UnimplementedError();
  }
}

,如果您在widget_test.dart中发现问题, 替换此行

await tester.pumpWidget(MyApp());

与此一起

await tester.pumpWidget(MaterialApp());

相关问题