首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

按钮主题适用于RaisedButton (已弃用),但不适用于ElevatedButton

按钮主题适用性问题

基础概念

在Flutter框架中,RaisedButtonElevatedButton都是用于创建按钮的Widget,但它们在设计和使用上有一些差异。

  • RaisedButton:这是一个已弃用的按钮组件,它提供了一个凸起的视觉效果。
  • ElevatedButton:这是Flutter 2.0引入的新按钮组件,提供了更现代的外观和更好的性能。

相关优势

  • ElevatedButton
    • 提供了更现代的设计,符合Material Design的最新规范。
    • 支持更多的自定义选项,如形状、颜色、阴影等。
    • 性能更好,因为它使用了更高效的渲染机制。

类型

  • RaisedButton:已弃用,主要支持基本的凸起按钮样式。
  • ElevatedButton:支持多种样式和自定义选项,包括填充、边距、图标、文本等。

应用场景

  • RaisedButton:适用于需要简单凸起按钮的场景,但由于已弃用,建议迁移到ElevatedButton
  • ElevatedButton:适用于需要现代、自定义按钮样式的场景,如应用的主按钮、表单提交按钮等。

问题及原因

问题:按钮主题适用于RaisedButton,但不适用于ElevatedButton

原因

  1. 已弃用RaisedButton已被弃用,Flutter团队推荐使用ElevatedButton
  2. 设计差异ElevatedButton的设计和实现方式与RaisedButton不同,导致一些旧的主题和样式不兼容。
  3. 自定义选项ElevatedButton提供了更多的自定义选项,可能需要手动调整主题以适应新的按钮样式。

解决方法

  1. 迁移到ElevatedButton
  2. 迁移到ElevatedButton
  3. 自定义主题: 如果需要自定义按钮样式,可以使用ElevatedButton.styleFrom方法来设置主题。
  4. 自定义主题: 如果需要自定义按钮样式,可以使用ElevatedButton.styleFrom方法来设置主题。
  5. 参考文档

通过以上方法,可以解决按钮主题适用于RaisedButton但不适用于ElevatedButton的问题,并确保应用使用最新的Flutter组件和最佳实践。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你知道吗,Flutter内置了10多种Button控件

RaisedButton RaisedButton是一个material风格”凸起“的按钮,基本用法: RaisedButton( child: Text('Button'), onPressed...... ) shape设置按钮的形状,比如设置为圆形,代码如下: RaisedButton( shape: CircleBorder(), ... ) 效果如下: ?...RawMaterialButton RawMaterialButton是基于Semantics, Material和InkWell创建的组件,它不使用当前的系统主题按钮主题,用于自定义按钮或者合并现有的样式...,而RaisedButton和FlatButton都是基于RawMaterialButton配置了系统主题按钮主题,相关属性可以参考RaisedButton,参数基本一样,基本用法如下: RawMaterialButton...和BackButton适用场景不同,BackButton适用于全屏的页面,而CloseButton适用于弹出的Dialog。 用法如下: CloseButton() 效果如下: ?

2.5K30

你知道吗,Flutter内置了10多种Button控件

RaisedButton RaisedButton是一个material风格”凸起“的按钮,基本用法: RaisedButton( child: Text('Button'), onPressed...... ) shape设置按钮的形状,比如设置为圆形,代码如下: RaisedButton( shape: CircleBorder(), ... ) 效果如下: [1240] 和hover...... ) 效果如下: [1240] RawMaterialButton RawMaterialButton是基于Semantics, Material和InkWell创建的组件,它不使用当前的系统主题按钮主题...,用于自定义按钮或者合并现有的样式,而RaisedButton和FlatButton都是基于RawMaterialButton配置了系统主题按钮主题,相关属性可以参考RaisedButton,参数基本一样...和BackButton适用场景不同,BackButton适用于全屏的页面,而CloseButton适用于弹出的Dialog。

2.5K00
  • 全网最详细的一篇Flutter 尺寸限制类容器总结

    10,), Container(height: 30,), ], ) AspectRatio AspectRatio组件是固定宽高比的组件,如果组件的宽度固定,希望高是宽的1/2,可以AspectRatio...FractionallySizedBox 当我们需要一个控件的尺寸是相对尺寸时,比如当前按钮的宽度占父组件的70%,可以使用FractionallySizedBox来实现此效果。...总结如下: ConstrainedBox:适用于需要设置最大/小宽高,组件大小依赖子组件大小,但不能超过设置的界限。...SizedBox:适用于固定宽高的情况,常用于当作2个组件之间间隙组件。 AspectRatio:适用于固定宽高比的情况。 FractionallySizedBox:适用于占父组件百分比的情况。...LimitedBox:适用于没有父组件约束的情况。 Container:适用于不仅有尺寸的约束,还有装饰(颜色、边框、等)、内外边距等需求的情况。

    88510

    Flutter 小技巧之 Flutter 3 下的 ThemeExtensions 和 Material3

    Theme.of(context) 去读取 ThemeData 的一些全局样式,从而让自己的控件配置更加灵活,但是如果 ThemeData 里没有符合你需求的参数,或者你希望这个参数只被特定控件是,...事实上现在 Flutter 3.0 里 colorScheme 才是主题颜色的核心,而 primaryColorBrightness 和 primarySwatch 等参数在未来将会被,所以如果目前你还在使用...Hue、Chroma、Tone 三个单词的缩写,可以解释为色相、色度和色调,通过谷歌开源的 material-color-utilities 插件就可以方便实现 HCT 颜色空间的接入,目前该 repo 支持...得益于 HCT ,例如我们前面的 ColorScheme.fromSeed(seedColor: Color(0xFF4285F4)),就可以通过一个 seedColor 直接生成一系列主题颜色,这就是...Material3 里可以拥有更丰富的主题色彩的原因。

    1.3K30

    全网最详细的一篇Flutter 尺寸限制类容器总结

    10,), Container(height: 30,), ], ) AspectRatio AspectRatio组件是固定宽高比的组件,如果组件的宽度固定,希望高是宽的1/2,可以AspectRatio...text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21lbmdrczE5ODc=,size_16,color_FFFFFF,t_70] FractionallySizedBox 当我们需要一个控件的尺寸是相对尺寸时,比如当前按钮的宽度占父组件的...总结如下: ConstrainedBox:适用于需要设置最大/小宽高,组件大小以来子组件大小,但不能超过设置的界限。...SizedBox:适用于固定宽高的情况,常用于当作2个组件之间间隙组件。 AspectRatio:适用于固定宽高比的情况。 FractionallySizedBox:适用于占父组件百分比的情况。...LimitedBox:适用于没有父组件约束的情况。 Container:适用于不仅有尺寸的约束,还有装饰(颜色、边框、等)、内外边距等需求的情况。 今天的文章对大家是否有帮助?

    48700

    全网最详细的一篇Flutter 尺寸限制类容器总结

    10,), Container(height: 30,), ], ) AspectRatio AspectRatio组件是固定宽高比的组件,如果组件的宽度固定,希望高是宽的1/2,可以AspectRatio...text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21lbmdrczE5ODc=,size_16,color_FFFFFF,t_70] FractionallySizedBox 当我们需要一个控件的尺寸是相对尺寸时,比如当前按钮的宽度占父组件的...总结如下: ConstrainedBox:适用于需要设置最大/小宽高,组件大小以来子组件大小,但不能超过设置的界限。...SizedBox:适用于固定宽高的情况,常用于当作2个组件之间间隙组件。 AspectRatio:适用于固定宽高比的情况。 FractionallySizedBox:适用于占父组件百分比的情况。...LimitedBox:适用于没有父组件约束的情况。 Container:适用于不仅有尺寸的约束,还有装饰(颜色、边框、等)、内外边距等需求的情况。 今天的文章对大家是否有帮助?

    62900

    Flutter 状态管理之GetX库

    点击Create按钮,完成项目的创建。   ...创建后我们可以看到main.dart,这里是flutter启动文件,同时我启动了一个模拟器,的雷电模拟器,至于为什么不用AS自带的模拟器,只能说懂的都懂,不懂的也劝你别去。   ...总结起来,StatelessWidget 是一个不可变的小部件,适用于静态内容,而 StatefulWidget 是一个可变的小部件,适用于需要跟踪状态变化的场景。...在按钮的点击事件中我们打印一下日志,下面我们重新运行一下。 点击按钮后,看控制台。..., home: HomePage(), ); } }   现在我们就进行了分离,下面就可以在home_page.dart中进行GetX的使用了,注意在使用的时候需要导包,在哪里就在哪里导包

    37201

    全网最详细的一篇Flutter 尺寸限制类容器总结

    10,), Container(height: 30,), ], ) AspectRatio AspectRatio组件是固定宽高比的组件,如果组件的宽度固定,希望高是宽的1/2,可以AspectRatio...text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21lbmdrczE5ODc=,size_16,color_FFFFFF,t_70] FractionallySizedBox 当我们需要一个控件的尺寸是相对尺寸时,比如当前按钮的宽度占父组件的...总结如下: ConstrainedBox:适用于需要设置最大/小宽高,组件大小以来子组件大小,但不能超过设置的界限。...SizedBox:适用于固定宽高的情况,常用于当作2个组件之间间隙组件。 AspectRatio:适用于固定宽高比的情况。 FractionallySizedBox:适用于占父组件百分比的情况。...LimitedBox:适用于没有父组件约束的情况。 Container:适用于不仅有尺寸的约束,还有装饰(颜色、边框、等)、内外边距等需求的情况。 今天的文章对大家是否有帮助?

    1.2K00

    这一次,解决Flutter Dialog的各种痛点!

    问题 使用系统弹窗存在一系列坑,来和各位探讨探讨 必须传BuildContext 在一些场景必须多做一些传参工作,蛋痛但不难的问题 loading弹窗 使用系统弹窗做loading弹窗,肯定遇到过这个坑比问题...系统弹窗就是一个路由页面,关闭系统就是pop方法,这很容易误关正常页面 当然肯定有解决办法,路由监听的地方处理,此处就不细表了 某页面弹出了多个系统Dialog,很难定点关闭某个非栈顶弹窗 蛋蛋,这是路由入栈出栈机制导致的...关闭页面本质上是一个比较复杂的情况,涉及到 物理返回按键 AppBar的back按钮 手动pop 为了监控这些情况,不得增加了一个路由监控参数 关于 FlutterSmartDialog.init()..., ); } 实体返回键 对返回按钮的监控,是非常重要的,基本能覆盖大多数情况 [initBack] pop路由 虽然对返回按钮的监控能覆盖大多数场景,但是一些手动pop的场景就需要新增参数监控 不加..., ) ], ), ), ), ); [hardClose] 从上面的效果图可以看出来 点击遮罩,无法关闭弹窗 点击返回按钮无法关闭弹窗 只能点我们自己的按钮

    1.9K51

    Flutte部件目录-基本部件(二) 顶

    TextOverflow.ellipsis, style: new TextStyle(fontWeight: FontWeight.bold), ) 互动 为了使文本对触摸事件作出反应,请将其GestureDetector.onTap...使用凸起的按钮将给其他大多数平面布局添加维度,例如在漫长的内容列表中,或在广泛的空间中。避免在凸起的内容(如对话框或卡片)上使用凸起的按钮。...如果您试图更改按钮的color并且没有任何效果,请检查您是否传递了非空onPressed处理函数。 如果您想为点击提供墨水飞溅效果,但不想使用按钮,请考虑直接使用InkWell。...构造函数 RaisedButton({Key key, @required VoidCallback onPressed, ValueChanged onHighlightChanged...final colorBrightness → Brightness 用于此按钮主题亮度. [...]

    4.4K20

    Flutter 1.22 正式发布

    1.20.4中修复 iOS 14设备上会禁止运行debug应用程序,但实际开发debug除外 针对本地调试的Flutter应用程序的有关网络安全的新策略使iOS 14显示一次性确认对话框(仅在开发过程中,不适用于发布的...仍在使用v1 API的旧版应用程序在构建过程中将显示警告,该警告指向支持新的Android插件API文档 同时,如果您仍然有基于v1 Android API的Flutter应用程序,它将继续运行。...现有的Flutter按钮看上去不错,但很难使用,尤其是在需要自定义主题时。此外,“Material”规范扩展为包括具有新样式的新按钮。...为使Flutter保持与Material指南的最新水平,我们很高兴地宣布Flutter 1.22中的引入全新的按钮。 该PR并没有尝试就地开发现有的按钮类及其主题,而是引入了新的替换按钮小部件和主题。...这并不是一个重大变化,因为FlatButton,OutlineButton,RaisedButton,ButtonBar,ButtonBarTheme和ButtonTheme的语义不会改变。

    7.5K20

    Flutter 2.5正式版发布,带来重大更新

    在此版本中,我们对新 Material You(又名 v3)的规范增加了支持,包括对浮动操作按钮大小和主题的更新(#86441),在MaterialState.scrolledUnder 可以使用 Demo...优化和改变的内容具体表现如下几个方面: 优化调试切换按钮:我们对这些按钮进行了更新,以让它更好的表达它们的作用,并且每个工具提示都会链接到该功能的详细文档。...其他 除此之外,Flutter 2.5的重大更改和还有如下一些: 默认拖动滚动设备 在 v2.2 之后删除了的 API 引入包:flutter_lints ThemeData 的 accent...属性已被 手势识别器清理 collate 替换 AnimationSheetBuilder.display 使用 HTML 插槽在 Web 中呈现平台视图 将 LogicalKeySet 迁移到...SingleActivator 此外随着 Flutter 2.5 的发布,我们将2020 年 9 月宣布的对 iOS 8 的支持。

    4.4K50

    斗转星移 | 三万字总结Kafka各个版本差异

    自0.11.0.0以来的Scala使用者已被删除。自0.10.0.0以来,Java使用者一直是推荐的选择。...旧poll(long)API,将在以后的版本中删除。...请注意,在2.0中,我们删除了在1.0之前的公共API; 利用这些的API的用户需要相应地更改代码。有关更多详细信息,请参阅2.0.0中的Streams API更改。...在1.0.0中无意中破坏了二进制(但不是源)兼容性。 1.0.0中的显着变化 现在默认启用主题删除,因为功能现在稳定。...新的使用者现在公开配置参数exclude.internal.topics以限制内部主题(例如消费者偏移主题)意外地包含在正则表达式订阅中。默认情况下,它启用。 旧的Scala生产商已被

    2.3K32

    开源绘画应用 Pinta 移植到GTK 3和.NET 6

    Pinta 是一款开源绘画应用,适用于 Linux、Windows 和 macOS。你可以用它来进行自由手绘/素描。你也可以用它在现有的图片上添加箭头、方框、文字等。...GTK3 主题现在也应该得到支持。 改进了对高 DPI 显示器的支持。 现在使用平台本机文件对话框(#1909807、#1909664)。 建议使用 GTK 版本的 3.24.21 或更高版本。...更改了文本工具以使用标准的 GTK 字体选择器构件 (#1311873、#1866653、#890589) 更改了几个工具,以使用旋转按钮而不是可编辑的组合框,例如选择画笔大小(#1186516)。..."打开最近打开最近"菜单项在 GTK3 中,并且已被删除,但文件对话框的"最近"部分中提供了类似的功能。 对加载项的支持已被删除,但可能会在将来的版本中返回 (#1918039)。

    1.3K10

    Notepad++,事实证明它更牛逼!

    不幸的是,它不适用于 Linux 用户。可以安装一个非官方的 Snap 包,但考虑到它依赖于嵌入式版本的 Wine,它可能并不令人满意。 作为文本编辑工具,有比 Notepad++ 更好的替代工具吗?...之前,民工哥就介绍过:Notepad++,还有 5 款更牛逼的选择!...但不应期望提供相同级别的产品,因为 Notepad Next 仍在积极开发中(截至目前为 0.5 版)并且需要一些改进。话虽如此,Notepad Next 在大多数情况下都是可用且稳定的。...撤消/重做按钮。 放大/缩小。 Lua 控制台。 EOL 操作。 能够转换大写 ↔ 小写。跨平台 还值得注意的是,目前,macOS 版本是实验性的。...但是,它适用于 Windows、Linux 和 macOS。因此,一旦开发人员解决了问题,它应该是一个完美的跨平台开源文本编辑器应用程序。

    1.6K30

    objectable_java throwable

    因此,我的问题是:为什么还没有被?如果核心Java团队已经确定它已被破坏,那么他们也必须考虑。他们这样做的原因是什么(在Java 8中它是still not deprecated)?...(或者实际上,为什么not1111428949已经过去,对于任何X而言)是因为对它们的并没有太多关注。 最近的大部分内容都已,因为有一个特定的计划要删除它们。...我在最近的JavaOne演讲Debt and Deprecation中探讨了这个主题。 (在该链接上可用的幻灯片; video here。)事实证明,JDK本身在使用方面并不十分一致。...它们的一些子集适用于的东西(但可能应该)。 Cloneable和Object.clone()在它们有设计缺陷并且难以正确使用的意义上是”破碎的”。...事实上,””似乎意味着最终被删除 – 尽管事实上已经删除了少量被的功能 – 因此克隆机制似乎不值得推荐。也许将来可以应用替代标记,指导开发人员使用替代机制。

    42740
    领券