【问题标题】:Difference between SliderThemeData().copyWith(...) and SliderTheme.of(context).copyWith(...)SliderThemeData().copyWith(...) 和 SliderTheme.of(context).copyWith(...) 的区别
【发布时间】:2021-04-11 04:58:54
【问题描述】:

我是 Flutter 的新手,正在尝试更改滑块样式而不是默认样式。我发现它可以使用 SliderThemeData().copyWith(...) 或 SliderTheme.of(context).copyWith(...) 来完成,它们的工作方式完全相同。这两者有什么区别?

SliderTheme(
     // data:  SliderThemeData().copyWith(),
     child: Slider(
       activeColor: Color(0xFFEB1555),
       inactiveColor: Color(0xFF8D8E98),
       onChanged: (double value) {
       
       },
       value: 10
       min: 10,
       max: 100,
     ),
),

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    不同的是,如果自定义了主题,需要用SliderThemeData.of(context)获取,.of方法在widget树中查找并返回最接近的SliderTheme。你可以阅读更多关于这个here的信息。

    SliderThemeData() 使用默认值生成一个全新的SliderThemeData,因为您在没有附加参数的情况下调用了constructor

    .copyWith() 方法创建 copy of this object but with the given fields replaced with the new values

    【讨论】:

    • 那么 SliderThemeData(activeTrackColor: Colors.white,) 和 SliderThemeData().copyWith(activeTrackColor: Colors.white,) 有什么区别?
    • 两种情况下的 activeTrackColor 相同,但如果您自己定义了自定义主题,则 SliderThemeData 的其余部分会有所不同,即在小部件树的较早位置。
    猜你喜欢
    • 2021-10-19
    • 2022-01-20
    • 2021-08-23
    • 2020-06-06
    • 2023-01-18
    • 2021-12-10
    • 1970-01-01
    • 2021-08-02
    • 2023-03-12
    相关资源
    最近更新 更多