flutter设置主题

241 阅读1分钟

theme分为两种:全局theme和局部theme。全局Theme是由应用程序根MaterialApp创建的Theme.

Widget build(){
    return MaterialApp(
        ...
        theme: ThemeData(
            ...
        )
    )
}

局部主题是在应用程序某个小角落中用于覆盖全局主题的。有两种创建方法。

// 一是直接创建特有的ThemeData:
Widget build(){
    return theme(
        data: ThemeData(
            ...
        ),
        child: ...
    )
}
// 二是扩展父组件,扩展父组件时无需覆盖所有的主题属性。通过使用copyWith方法来实现
Widget build(){
    return theme(
        data: Theme.of(context).copyWith(...),
        child: ...
    )
}

参考文章: www.jianshu.com/p/059c5794b…