Flutter 创建一个凸起的按钮

标签 flutter

我目前正在尝试在 Flutter 中创建一个自定义样式的按钮。我希望创建一个类似于此的按钮 https://raw.githubusercontent.com/hoang8f/android-flat-button/master/screenshot/screenshot.gif

我可以使用 RaisedButton 创建类似的东西,还是需要使用 CustomPainter 通过自定义绘图来创建它? RaisedButton 在使用 elevation 参数时似乎没有产生想要的效果。

最佳答案

您可以创建一个 StatefulWidget 并使用 GestureDetector

  class MyCustomButton extends StatefulWidget {
    @override
    _MyCustomButtonState createState() => _MyCustomButtonState();
  }

  class _MyCustomButtonState extends State<MyCustomButton> {
    bool _isPressed = false;

    @override
    Widget build(BuildContext context) {
      return GestureDetector(
        onTapDown: (TapDownDetails details) {
          setState(() {
            _isPressed = true;
          });
        },
        onTapUp: (TapUpDetails details) {
          setState(() {
            _isPressed = false;
          });
        },
        child: Container(
            padding: EdgeInsets.all(20.0),
            decoration: BoxDecoration(
              color: Colors.blue,
              border: _isPressed
                  ? Border(bottom: BorderSide(color: Colors.grey, width: 10.0))
                  : null,
            ),
            child: Text("title button")),
      );
    }
  }

关于Flutter 创建一个凸起的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51845652/

相关文章:

FlutterDriver问题,无法通过Key找到Widget

flutter - 同一个流(QuerySnapshot)可以与不同页面上的多个 StreamBuilder 一起使用吗? - - flutter

flutter - flutter 错误: '(String, ItemPriority) => void'类型不是 '(String, [ItemPriority]) => dynamic'类型的子类型

flutter - 修复 Dartz 包不可为空的问题

google-maps - 初始化问题。如何将类似这样的内容转换为静态成员?如果那是我需要做的

flutter - 在空上调用了 '[]'方法。接收器: null Tried calling: [](0)

flutter - 无法将 mobx 集成到简单的 flutter 应用程序中,该应用程序会在点击时增加计数器

firebase - flutter firebase 从 Firestore 获取数组并将其分配给列表

flutter - 如何在 flutter 桌面中自定义 AppMenu(MenuBar)?

flutter - 动态ListView在另一个ListView中的高度