Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

The class 'SimpleFoldingCell' doesn't have a default constructor

https://github.com/flutter-devs/flutter_folding_cell_demo/blob/master/lib/demo_screen.dart

I’m trying to follow the code in the link above.
But in the SimpleFoldingCell part, an error named ‘The class ‘SimpleFoldingCell’ doesn’t have a default constructor.’ occurs.
Could
Is there a way to resolve this error in Dart?

class Notific extends StatefulWidget{
  @override
  _State createState() => _State();
}

class _State extends State<Notific>{
  late List<TechnologyModel> _technologyList;

  @override
  void initState() {
    super.initState();
    _technologyList = [
      TechnologyModel(title: "Application Development",),
      TechnologyModel(title: "Research & Development",),
      TechnologyModel(title: "Big Data & Analytics",),
      TechnologyModel(title: "Support Services",),
      TechnologyModel(title: "QA & Software Testing",),
    ];

  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        automaticallyImplyLeading: false,
        backgroundColor: Colors.pink[200],
        title: Text("Folding Cell Demo",
          style: TextStyle(color: Colors.white),),
      ),
      body: Container(
        child: ListView.builder(
          itemCount: _technologyList.length,
          itemBuilder: (context, index) {
            return SimpleFoldingCell(
              frontWidget: _buildFrontWidget(index),
              innerTopWidget: _buildInnerWidget(index),
              innerBottomWidget: _buildInnerBottomWidget(),
              cellSize: Size(MediaQuery.of(context).size.width, 125),
              padding: EdgeInsets.all(15),
              animationDuration: Duration(milliseconds: 200),
              borderRadius: 10,
              onOpen: () => print('$index cell opened'),
              onClose: () => print('$index cell closed'),
            );
          },
        ),
      ),
    );
  }

  Widget _buildFrontWidget(int index) {
    return Builder(
      builder: (BuildContext context) {
        return Container(
          color:  Colors.cyan[100],
          alignment: Alignment.bottomCenter,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                "Aeologic Technology",
                style: TextStyle(
                  fontSize:20.0,
                  color: Colors.black,
                ),
              ),
              SizedBox(height: 10,),
              FlatButton(
                onPressed: () {
                  final foldingCellState = context
                      .findAncestorStateOfType<SimpleFoldingCellState>();
                  foldingCellState?.toggleFold();
                },
                child: Text(
                  "OPEN",
                ),
                textColor: Colors.white,
                color: Colors.indigoAccent[100],
                splashColor: Colors.white.withOpacity(0.5),
              ),
            ],
          ),
        );
      },
    );
  }

  Widget _buildInnerBottomWidget() {
    return Builder(
        builder: (context) {
          return Container(
            color: Colors.blueGrey[50],
            alignment: Alignment.bottomCenter,
            child: Padding(
              padding: EdgeInsets.only(bottom: 10),
              child: FlatButton(
                onPressed: () {
                  final foldingCellState = context
                      .findAncestorStateOfType<SimpleFoldingCellState>();
                  foldingCellState?.toggleFold();
                },
                child: Text(
                  "Close",
                ),
                textColor: Colors.white,
                color: Colors.redAccent[100],
                splashColor: Colors.white.withOpacity(0.5),
              ),
            ),
          );
        }
    );
  }

  Widget _buildInnerWidget(int index) {
    return Builder(
      builder: (context) {
        return Container(
          color: Colors.pink[100],
          padding: EdgeInsets.only(top: 10),
          child: Align(
            alignment: Alignment.center,
            child: Text(
              _technologyList[index].title,
              style: TextStyle(
                fontSize:20.0,
                color: Colors.black,
              ),
            ),
          ),
        );
      },
    );
  }
}
class TechnologyModel {
  String title;

  TechnologyModel({
    required this.title,
  });
}

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

For some reason they’ve created only a named constructor.

return SimpleFoldingCell.create(
  frontWidget: _buildFrontWidget(index),
  innerWidget: _buildInnerWidget(index),
  // innerTopWidget: _buildInnerWidget(index),
  // innerBottomWidget: _buildInnerBottomWidget(),
  cellSize: Size(MediaQuery.of(context).size.width, 125),
  padding: EdgeInsets.all(15),
  animationDuration: Duration(milliseconds: 200),
  borderRadius: 10,
  onOpen: () => print('$index cell opened'),
  onClose: () => print('$index cell closed'),
);

It looks like the demo you’re looking at is a bit outdated, since some of those properties don’t exist anymore (see commented code).

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading