custom_theme 1.9.2 copy "custom_theme: ^1.9.2" to clipboard
custom_theme: ^1.9.2 copied to clipboard

discontinued

Custom theme with user data support. Plugin wrap standard Flutter ThemeData to CustomData and allow to add some user defined data.

example/lib/main.dart

import 'package:custom_theme/custom_theme.dart';
import 'package:example/my_themes.dart';
import 'package:flutter/material.dart';

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

final themeNotifier = ValueNotifier<CustomTheme<MyData>>(LightTheme1());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ValueListenableBuilder<CustomTheme<MyData>>(
      valueListenable: themeNotifier,
      builder: (context, theme, child) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: theme,
          darkTheme: DarkTheme(),
          home: child,
        );
      },
      child: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  @override
  Widget build(BuildContext context) {
    debugPrint(
        "getMyData(context).size=${CustomTheme.get<MyData>(context).size}");

    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceAround,
          children: <Widget>[
            Text(
              CustomTheme.get<MyData>(context).text,
            ),
            AnimatedContainer(
              duration: CustomTheme.get<MyData>(context).duration,
              width: CustomTheme.get<MyData>(context).size,
              height: CustomTheme.get<MyData>(context).size,
              decoration: BoxDecoration(
                color: CustomTheme.get<MyData>(context).squareColor,
              ),
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          ++_counter;

          if (_counter == 1) {
            themeNotifier.value = LightTheme2();
          } else if (_counter == 2) {
            themeNotifier.value = DarkTheme();
          } else {
            _counter = 0;
            themeNotifier.value = LightTheme1();
          }
        },
        child: Icon(Icons.alternate_email),
      ),
    );
  }
}
0
likes
30
pub points
0%
popularity

Publisher

unverified uploader

Custom theme with user data support. Plugin wrap standard Flutter ThemeData to CustomData and allow to add some user defined data.

Repository (GitHub)
View/report issues

License

MIT (LICENSE)

Dependencies

flutter

More

Packages that depend on custom_theme