1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[Flutter] `vsync` property in TabController constructor

Discussão em 'Mobile' iniciado por Stack, Outubro 3, 2024 às 11:13.

  1. Stack

    Stack Membro Participativo

    According to this: sample code

    I created my own implementation of TabController:

    void main() {
    runApp(new MyApp());
    }

    class MyApp extends StatefulWidget {

    @override
    _MyAppState createState() => new _MyAppState();
    }

    class _MyAppState extends State<MyApp> {

    TabController _tabController;

    @override
    void initState() {
    super.initState();
    _tabController = new TabController(vsync: this, length: choices.length);
    }

    @override
    void dispose() {
    _tabController.dispose();
    super.dispose();
    }

    @override
    Widget build(BuildContext context) {
    return new MaterialApp(
    home: new Scaffold(
    bottomNavigationBar: new Material(
    color: Colors.blue,
    child: new TabBar(
    controller: _tabController,
    isScrollable: false,
    tabs: choices.map((Choice choice) {
    return new Tab(
    text: null,
    icon: new Icon(choice.icon),
    );
    }).toList(),
    ),
    ),
    appBar: new AppBar(
    title: const Text('Swap'),
    ),
    body: new TabBarView(
    controller: _tabController,
    children: choices.map((Choice choice) {
    return new Padding(
    padding: const EdgeInsets.all(16.0),
    child: new ChoiceCard(choice: choice),
    );
    }).toList(),
    ),
    ),
    );
    }
    }


    In line: _tabController = new TabController(vsync: this, length: choices.length); I got error this message:


    error: The argument type '_MyAppState' can't be assigned to the parameter type 'TickerProvider'. (argument_type_not_assignable at [swap] lib/main.dart:24)

    What is wrong with my code?

    Continue reading...

Compartilhe esta Página