ecp_theme 2.0.3 copy "ecp_theme: ^2.0.3" to clipboard
ecp_theme: ^2.0.3 copied to clipboard

翼协云主题管理包,提供 Light/Dark 主题配置、Color/Theme 扩展、通用尺寸规范及文本组件封装,内部项目通用的 Flutter 主题工具库。

example/lib/main.dart

import 'package:device_preview/device_preview.dart';
import 'package:ecp_theme/ecp_theme.dart';
import 'package:example/pages/color_page.dart';
import 'package:example/pages/defalut_test_page.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';

import 'pages/color_scheme_page.dart';

void main() {
  runApp(
    DevicePreview(
      builder: (context) => const MyApp(),
      enabled: true,
    ),
  );
}

var divider = const Divider();

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return ScreenUtilInit(
        designSize: Dimens.designSize,
        useInheritedMediaQuery: !kReleaseMode,
        builder: (context, widget) {
          var child = MaterialApp(
            title: 'Flutter Demo',
            theme: Themes.light,
            darkTheme: Themes.dark,
            home: const HomePage(),
          );
          return DevicePreview.appBuilder(context, child);
        });
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("首页"),
      ),
      body: ListView(
        padding: const EdgeInsets.all(20),
        children: [
          pageItem(context, const ColorPage(), "Colors"),
          divider,
          pageItem(context, const ColorSchemePage(), "ColorScheme"),
          divider,
          pageItem(
            context,
            const DefaultTestPage(),
            "缺省页",
          ),
        ],
      ),
    );
  }

  Widget pageItem(BuildContext context, Widget page, String pageName) {
    var scheme = Theme.of(context).colorScheme;
    return InkWell(
      onTap: () => Navigator.of(context)
          .push(MaterialPageRoute(builder: (context) => page)),
      child: Container(
        color: scheme.surface,
        padding: const EdgeInsets.all(20),
        child: Center(
          child: Text(
            pageName,
            style: TextStyle(color: scheme.onSurface),
          ),
        ),
      ),
    );
  }
}
0
likes
55
points
38
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

翼协云主题管理包,提供 Light/Dark 主题配置、Color/Theme 扩展、通用尺寸规范及文本组件封装,内部项目通用的 Flutter 主题工具库。

Homepage

License

MIT (license)

Dependencies

flutter, flutter_screenutil

More

Packages that depend on ecp_theme