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

RaisedButton vs ElevatedButton、FlatButton vs TextButton和OutlineButton vs OutlinedButton

RaisedButton vs ElevatedButton

基础概念:

  • RaisedButtonElevatedButton 都是用于创建具有凸起效果的按钮,通常用于 Material Design 风格的应用程序。

优势:

  • RaisedButton 是较早的实现方式,简单易用。
  • ElevatedButton 是更新后的组件,提供了更多的自定义选项和更好的性能。

类型:

  • RaisedButton:简单的凸起按钮。
  • ElevatedButton:支持阴影和背景颜色的自定义,提供了更好的视觉效果。

应用场景:

  • RaisedButton:适用于简单的按钮需求。
  • ElevatedButton:适用于需要更多自定义和高级视觉效果的场景。

问题与解决方法:

  • 问题:为什么 ElevatedButton 比 RaisedButton 更好?
    • 原因:ElevatedButton 提供了更多的自定义选项,如阴影和背景颜色,使得按钮看起来更现代和高级。
    • 解决方法:如果需要更高级的按钮效果,建议使用 ElevatedButton。

FlatButton vs TextButton

基础概念:

  • FlatButtonTextButton 都是用于创建扁平化风格的按钮,通常用于简洁的设计。

优势:

  • FlatButton:提供了平滑的按下效果,适合需要视觉反馈的场景。
  • TextButton:更加简洁,适用于不需要额外视觉效果的场景。

类型:

  • FlatButton:带有平滑按下效果的扁平按钮。
  • TextButton:纯文本按钮,没有额外的背景或阴影。

应用场景:

  • FlatButton:适用于需要用户感知到按钮被按下的场景。
  • TextButton:适用于需要极简设计的场景。

问题与解决方法:

  • 问题:为什么 TextButton 比 FlatButton 更简洁?
    • 原因:TextButton 没有额外的背景或阴影,只有纯文本,使得界面更加简洁。
    • 解决方法:如果追求极简设计,建议使用 TextButton。

OutlineButton vs OutlinedButton

基础概念:

  • OutlineButtonOutlinedButton 都是用于创建带有轮廓的按钮,通常用于需要区分主次按钮的场景。

优势:

  • OutlineButton:提供了清晰的轮廓,适用于需要区分主次按钮的场景。
  • OutlinedButton:通常是更新后的组件,提供了更多的自定义选项。

类型:

  • OutlineButton:带有轮廓的按钮,通常用于次要操作。
  • OutlinedButton:带有轮廓的按钮,支持更多的自定义选项。

应用场景:

  • OutlineButton:适用于需要区分主次按钮的场景。
  • OutlinedButton:适用于需要更多自定义和高级视觉效果的场景。

问题与解决方法:

  • 问题:为什么 OutlinedButton 比 OutlineButton 更灵活?
    • 原因:OutlinedButton 提供了更多的自定义选项,如颜色、边框宽度等,使得按钮更加灵活。
    • 解决方法:如果需要更多的自定义选项,建议使用 OutlinedButton。

示例代码

以下是 Flutter 中使用这些按钮的示例代码:

代码语言:txt
复制
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Button Examples')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () {},
                child: Text('ElevatedButton'),
              ),
              FlatButton(
                onPressed: () {},
                child: Text('FlatButton'),
              ),
              OutlinedButton(
                onPressed: () {},
                child: Text('OutlinedButton'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

参考链接

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

相关·内容

Flutter 中FlatButton的替代方案

最新版本的Flutter已将FlatButton标记为过时,我们可以使用 TextButtonElevatedButton 来进行替代,FlatButton 与替代组件的参数会有差异。...首先来看下TextButtonTextButton 用于显示文本按钮,与 FlatButton 相似,但默认为透明背景,更符合 Material Design 的风格。...以下是一个使用 ElevatedButton 的示例: ElevatedButton( onPressed: () { // 处理按钮点击事件 }, child: Text('Click...me'), ); 需要注意的是,TextButton ElevatedButton 都需要提供一个 onPressed 回调来处理按钮的点击事件。...TextButton ElevatedButton 只能提供有限的自定义选项,如果需要更多的自定义选项,例如设置按钮的形状或阴影等,可以使用 FlatButton 的替代品 OutlinedButton

61620
  • Flutter 小技巧之 ButtonStyle MaterialStateProperty

    大家是否还记得去年 Flutter 2.0 发布的时候,除了空安全之外 ,还更新了一系列关于控件的 breaking change,其中就有 FlatButton 被标志为弃用,需要替换成 TextButton...为什么 TextButton MaterialStateProperty 扯到一起?...相信大家当初在从 Flutter 1 切换到 Flutter 2 的时候,应该都有过这样一个疑问: 为什么 FlatButton RaisedButton 会被弃用替换成 TextButton ...随着 Web Desktop 平台的发布,原本的 FlatButton 无法很好满足新的 UI 交互需要,例如键鼠交互下的 hovered ,所以 TextButton 开始使用 MaterialStateProperty...事实上 TextButtonElevatedButton OutlinedButton 都是 ButtonStyleButton 的子类,他们都会遵循以下的原则: final ButtonStyle

    2.7K40

    深入小程序系列之二、Flutter 小程序混编

    (version 2019.3.3) [✓] VS Code: is fully installed. (version 1.42.1) [!]...flutter 需要依赖本地安装对应的 iOS,Android 开发工具,即需要安装 Xcode AndroidStudio。具体安装使用方法这里不赘述。...(Channel stable, v1.12.13+hotfix.8, on Mac OS X 10.15.3 19D76, locale zh-Hans-CN) VS Code: is fully installed...Mop.instance.initialize这里需要用到 sdkkey secret。可以直接在https://mp.finogeeks.com免费注册获取。...mop-flutter-demo 相关文章:凡泰极客私有云小程序技术 关于凡泰极客:帮助金融机构乃至任何希望拥有类似技术的其他行业机构,建立“碎片”的集散地、降低管理成本、提高研发效能,形成自己的数字化生态、与客户伙伴建立真正的数字化连接

    1.7K20

    使用 GoRouter 进行 Flutter 导航:Go 与 Push

    在使用 GoRouter 进行声明式路由时,深入解释 Go Push 的区别 go_router 包是用于声明式路由的流行包。...它基于 Navigator 2.0 API,目的是使用声明式路由来降低复杂性,无论您的目标平台是什么(移动、Web、桌面),处理来自 Android、iOS Web 的深度动态链接,以及其他一些导航相关的场景...---- 这意味着一旦我们关闭模态页面,我们将导航回: 如果我们使用go,返回主页, 如果我们使用push,返回详细信息页面 这是一个显示此行为的简短演示: go vs push 路由:动画视频 最后附上完整源代码...), const SizedBox( height: 32, ), ElevatedButton...), const SizedBox( height: 32, ), ElevatedButton

    2.4K10

    第130期:flutter的状态组件状态管理

    状态组件 VS 无状态组件 这两个概念在react中我们非常熟悉,状态组件内部定义的有自己的属性,可以用来控制不同状态下展示不同的界面。无状态组件则只负责展示界面,没有其他的多余功能。...状态组件件由两个类实现:StatefulWidget的子类State的子类。 2. state类包含组件的可变状态组件的build()方法。 3....此示例有两个State对象,_ParentWidgetState_TapboxCState。 _ParentWidgetState对象: 管理活动状态_active。...最后 在组件的状态管理中,我们使用的最多的交互场景大抵是表单相关的内容,相关的组件有: Form FormField Checkbox DropdowmButton TextButton FloatingActionButton...web开发使用的场景差不多~ 我们在进行组件的封装时,本质上是在开发一个自定义的状态组件~

    1.5K21

    TensorFlow Lite,ML Kit Flutter 移动深度学习:6~11

    用户界面(UI)将包含两个TextFormField来获取用户的电子邮件 ID 密码,RaisedButton进行注册/登录,以及FlatButton进行注册登录操作之间的切换。...现在,让我们将所有屏幕小部件Email TextField,Password TextFied,SignIn ButtonFlatButton切换为在单个容器中进行注册登录。...在这里,我们使用Form将两个TextFormFields,一个RaisedButton一个FlatButton包装在一起。...设置 VS 代码 Visual Studio(VS)Code 是由 Microsoft 开发的轻型代码编辑器。 它的简单性广泛的插件存储库使其成为开发人员的便捷工具。...我们将从这里下载最新版本的 VS Code 开始。 安装 Flutter Dart 插件 首先,我们需要在 VS Code 上安装 Flutter Dart 插件。

    23.1K10

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券