- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经为我的顶级 ThemeData 提供了一个具有特定形状的 ButtonThemeData。不管怎样,ElevatedButton 具有默认形状。
我的顶级主题是这样定义的...
return ScopedModel<MyModel>(
model: _model,
child: MaterialApp(
title: "MyApp",
theme: ThemeData(
fontFamily: 'Din',
colorScheme: MyLightTheme.colorScheme,
inputDecorationTheme: MyLightTheme.inputDecorationTheme,
accentColor: MyColors.secondary,
errorColor: MyLightTheme.colorScheme.error,
primarySwatch: MyColors.primarySwatch,
buttonTheme: ButtonThemeData(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),
side: BorderSide(color: Colors.red)
)
)
),
debugShowCheckedModeBanner: false,
home: EntryScreen(),
routes: <String, WidgetBuilder>{
}
)
);
我定义了一个简单的 FlatButton 如下...
ElevatedButton(
onPressed: () {
/*...*/
},
child: Text(
"Flat Button",
),
)
当 buttonColor 不是白色时,FlatButton 只是绘制白色。
最佳答案
您可以在下面复制粘贴运行完整代码
您可以使用 elevatedButtonTheme
并设置 ButtonStyle
的 shape
代码片段
ThemeData(
fontFamily: 'Din',
elevatedButtonTheme: ElevatedButtonThemeData(
style: ButtonStyle(
shape: MaterialStateProperty.all<OutlinedBorder>(
RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),
side: BorderSide(color: Colors.red))))))
工作演示
完整代码
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "MyApp",
theme: ThemeData(
fontFamily: 'Din',
elevatedButtonTheme: ElevatedButtonThemeData(
style: ButtonStyle(
shape: MaterialStateProperty.all<OutlinedBorder>(
RoundedRectangleBorder(
borderRadius: BorderRadius.circular(18.0),
side: BorderSide(color: Colors.red)))))),
debugShowCheckedModeBanner: false,
home: EntryScreen(),
);
}
}
class EntryScreen extends StatefulWidget {
EntryScreen({Key key}) : super(key: key);
@override
_EntryScreenState createState() => _EntryScreenState();
}
class _EntryScreenState extends State<EntryScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("test"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () {
/*...*/
},
child: Text(
"Flat Button",
),
)
],
),
),
);
}
}
关于Flutter ElevatedButton 不继承 ButtonThemeData 形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66340574/
我希望在字段中输入 10 个字符之前按钮处于非事件状态。当输入 10 个字符时,该按钮处于事件状态。当它处于非事件状态时,它是灰色的,而当它处于事件状态时,它是蓝色的。我怎样才能做到这一点?这是带有按
这是我的代码 ElevatedButton( child : Text ("Continue"), onPressed: () {
我已经为我的顶级 ThemeData 提供了一个具有特定形状的 ButtonThemeData。不管怎样,ElevatedButton 具有默认形状。 我的顶级主题是这样定义的... return S
我正在使用 RaisedButton直到 Flutter 弃用它,我们不能再使用它了。有一个建议说“使用 ElevatedButton 代替”。所以我尝试使用它,但我看不到像 color 这样的属性。
我如何在 flutter elevatedbutton 中设置宽度,这是我的代码,谢谢 ElevatedButton( style: But
我如何在 flutter elevatedbutton 中设置宽度,这是我的代码,谢谢 ElevatedButton( style: But
我希望删除 FlatButton 的默认边距,但似乎无法设置/覆盖它。 Column(children: [ Container( children: [
这是屏幕部分的完整代码: ListView(children: [ ClipRect( child: Image.asset( 'images/icon.png',
在使用默认的 ButtonThemeData 制作渐变按钮之前很容易......但现在我无法弄清楚如何使用新的 MaterialButtons 正确制作自定义渐变按钮。 我正在尝试制作一个三个自定义渐
之前版本2.0.1我使用的是 RaisedButton 的 flutter 并且有一个名为 focusElevation 的属性更改按钮按下时的高度。因此,在 Flutter 弃用它之后,根据文档,我
我一直在疑惑这个问题。我希望具有不同文本的 2 个按钮具有相同的宽度。 我通过使 ElevatedButton 成为 SizedBox 的子项来实现这一点,但我担心如果用户将默认字体大小设置为大,则
我为 elevatedButtonTheme 定义了一个 textStyle elevatedButtonTheme: ElevatedButtonThemeData( style: Button
我看到使用旧按钮的警告: 'RaisedButton' is deprecated and shouldn't be used. 'FlatButton' is deprecated and shou
我是一名优秀的程序员,十分优秀!