Расширенный виджет, получающий ошибку рендеринга в сети Flutter - PullRequest
0 голосов
/ 06 марта 2020

Я получаю ошибку рендеринга при вставке расширенного виджета в тело Scafold. Я могу обойти это с помощью контейнера, но предпочел бы использовать расширенный.

Я пробовал его в базовом c лесу без других виджетов. Вот ошибка:

https://pastebin.com/uzRveb2r

Я получаю эту ошибку только в Интернете, а не на мобильном телефоне.

Вот код страницы:

import 'package:flutter/material.dart';
import 'package:webenrol/components/enquiries_series.dart';
import 'package:webenrol/constants.dart';
import 'package:webenrol/widgets/enquiries_chart.dart';

class DashboardAdmin extends StatelessWidget {
  final List<EnquiriesSeries> data = [
    EnquiriesSeries(month: 'Janurary', enquiries: 50),
    EnquiriesSeries(month: 'Febuary', enquiries: 75),
    EnquiriesSeries(month: 'March', enquiries: 80),
    EnquiriesSeries(month: 'April', enquiries: 100),
    EnquiriesSeries(month: 'May', enquiries: 120),
    EnquiriesSeries(month: 'June', enquiries: 150),
    EnquiriesSeries(month: 'July', enquiries: 10),
    EnquiriesSeries(month: 'August', enquiries: 50),
    EnquiriesSeries(month: 'September', enquiries: 70),
    EnquiriesSeries(month: 'October', enquiries: 50),
    EnquiriesSeries(month: 'November', enquiries: 130),
    EnquiriesSeries(month: 'December', enquiries: 450),
  ];

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(20),
      child: Column(
        children: <Widget>[
          Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              Card(
                child: Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Text('Total Number of Enquiries from X centres',
                          style: kDashboardCardTitle),
                      Text(
                        '546',
                        style: kDashboardLargeNumber,
                      )
                    ],
                  ),
                ),
              ),
              Card(
                child: Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Text('Website Enquiries', style: kDashboardCardTitle),
                      Text(
                        '10',
                        style: kDashboardLargeNumber,
                      )
                    ],
                  ),
                ),
              ),
              Card(
                child: Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Text('Phone Enquiries', style: kDashboardCardTitle),
                      Text(
                        '15',
                        style: kDashboardLargeNumber,
                      )
                    ],
                  ),
                ),
              ),
              Card(
                child: Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Text('Walk-in Enquiries', style: kDashboardCardTitle),
                      Text(
                        '6',
                        style: kDashboardLargeNumber,
                      )
                    ],
                  ),
                ),
              ),
              Card(
                child: Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Text('Email Enquiries', style: kDashboardCardTitle),
                      Text(
                        '15',
                        style: kDashboardLargeNumber,
                      )
                    ],
                  ),
                ),
              ),
              Card(
                child: Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Text('Other Enquiries', style: kDashboardCardTitle),
                      Text(
                        '115',
                        style: kDashboardLargeNumber,
                      )
                    ],
                  ),
                ),
              ),
            ],
          ),
          Card(
              child: Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Text('History of Enquiries'),
                      Expanded(child: Text('Hello World!')),
//                      EnquiriesChart(
//                        data: data,
//                      ),
                    ],
                  ))),
        ],
      ),
    );
  }
}

1 Ответ

0 голосов
/ 06 марта 2020

возможно, потому что ваш расширенный виджет расположен в столбце, где сам столбец является дочерним элементом другого столбца.

у создаваемого вами столбца не определена высота, и, возможно, это приведет к ошибке, поскольку он не знать высоту раскрытия.

Будет работать с SizedBox или контейнером с определенной высотой.

Попробуйте этот код в https://dartpad.dev/

import 'package:flutter/material.dart';


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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Store Warehouse',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: DashboardAdmin(),
        ),
    );
  }
}


class DashboardAdmin extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(20),
      child: Column(
        children: <Widget>[
//           Row(
//             mainAxisAlignment: MainAxisAlignment.center,
//             children: <Widget>[
//               Card(
//                 child: Padding(
//                   padding: EdgeInsets.all(20.0),
//                   child: Column(
//                     children: <Widget>[
//                       Text('Total Number of Enquiries from X centres',
//                          ),
//                       Text(
//                         '546',
//                       )
//                     ],
//                   ),
//                 ),
//               ),
//               Card(
//                 child: Padding(
//                   padding: EdgeInsets.all(20.0),
//                   child: Column(
//                     children: <Widget>[
//                       Text('Website Enquiries',),
//                       Text(
//                         '10',
//                       )
//                     ],
//                   ),
//                 ),
//               ),
//               Card(
//                 child: Padding(
//                   padding: EdgeInsets.all(20.0),
//                   child: Column(
//                     children: <Widget>[
//                       Text('Phone Enquiries',),
//                       Text(
//                         '15',
//                       )
//                     ],
//                   ),
//                 ),
//               ),
//               Card(
//                 child: Padding(
//                   padding: EdgeInsets.all(20.0),
//                   child: Column(
//                     children: <Widget>[
//                       Text('Walk-in Enquiries', ),
//                       Text(
//                         '6',
//                       )
//                     ],
//                   ),
//                 ),
//               ),
//               Card(
//                 child: Padding(
//                   padding: EdgeInsets.all(20.0),
//                   child: Column(
//                     children: <Widget>[
//                       Text('Email Enquiries',),
//                       Text(
//                         '15',
//                       )
//                     ],
//                   ),
//                 ),
//               ),
//               Card(
//                 child: Padding(
//                   padding: EdgeInsets.all(20.0),
//                   child: Column(
//                     children: <Widget>[
//                       Text('Other Enquiries',),
//                       Text(
//                         '115',
//                       )
//                     ],
//                   ),
//                 ),
//               ),
//             ],
//           ),
          Container(height: 200, child:
          Card(

              child: Padding(
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: <Widget>[
                      Text('History of Enquiries'),
                      Text('History of Enquiries'),

                      Expanded(child: Text('Hello World!')),
                    ],
                  ))),),
        ],
      ),
    );
  }
}
...