Динамические темы флаттера с вкладками - PullRequest
0 голосов
/ 02 ноября 2019

Я пытался закодировать приложение, которое динамически меняет свои темы на основе нажатой вкладки. Я пытаюсь использовать *DynamicTheme Error* виджет DynamicTheme, но я продолжаю получать эту ошибку (см. Изображение), я использую метод DynamicTheme.of(context).setThemeData(ThemeData( primaryColor: crypto.color )); внутри TabBar, куда я должен поместить функцию, или сделатьЯ должен использовать другой метод полностью? Полный код:

    class MyApp extends StatelessWidget {


  @override
 Widget build(BuildContext context) {
   return new DynamicTheme(
  defaultBrightness: Brightness.light,
  data: (brightness) => new ThemeData(
    primaryColor: Colors.black

  ),
  themedWidgetBuilder: (context,theme){
    return MyHomePage();
  },


  );

 }
 }  
    class MyHomePage extends StatefulWidget {

  final String title = "Mobile Block Explorer";

  @override
 _MyHomePageState createState() => _MyHomePageState();

  }
Widget build(BuildContext context) {

return  MaterialApp(
  theme: ThemeData(primaryColor: Colors.black),
      debugShowCheckedModeBanner: false,

      home: DefaultTabController(

        length: crypto.length,

        child: Scaffold(

            appBar: AppBar(

              title: Text(widget.title),

              bottom: TabBar(
                  isScrollable: false,
                  indicatorColor: Colors.black,
                  tabs: crypto.map((Crypto crypto) {

                      DynamicTheme.of(context).setThemeData(ThemeData(
                          primaryColor: crypto.color
                      ));
                      return Tab(

                        child: Text("${crypto.title}",
                                style: TextStyle(color: Colors.white),)

                            ,



                    );

                  }).toList()

              ),
            ),

            body: TabBarView(

                children:  crypto.map((Crypto crypto) {

                  return blockView(crypto.url);
                }).toList()
            )


        )

        ,
      ),
);
  }...More code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...