著者| Vlad
ソース| Vlad(パブリックアカウント:fulade_me)
マテリアルスタイルには、一般的に使用される3つのボタン、、、RaiseButton
がFlatButton
ありOutlineButton
ます。
これらの3つのボタンはMaterialButton
、MaterialButton
から継承され、から継承されStatelessWidget
ます。
RaiseButton:シャドウ効果のあるボタンで、デフォルトでは背景が灰色で、下にクリックするとクリック効果とシャドウが表示されます。
FlatButton:フラットスタイルのボタン。クリックすると背景色になります。
OutlineButton:境界線のあるボタンで、クリックすると境界線の色が変わります。
1. RaisedButton
まずはRaisedButton
工法を見てみましょう
const RaisedButton({
Key key,
/// 点击后的回调方法
@required VoidCallback onPressed,
/// 长按后的回调方法
VoidCallback onLongPress,
/// 高亮时候的回调方法
ValueChanged<bool> onHighlightChanged,
/// 鼠标指针的光标进入或悬停在此按钮(这个用于Web端或PC端)
MouseCursor mouseCursor,
/// 文本的主题,这个跟MaterialApp的属性theme有关
ButtonTextTheme textTheme,
/// 文本颜色
Color textColor,
/// 不可点击时的文本颜色
Color disabledTextColor,
/// 背景颜色
Color color,
/// 可点击时的背景颜色
Color disabledColor,
/// 获取焦点时的颜色(用于Web端或PC端)
Color focusColor,
/// 指鼠标悬停时的颜色(用于Web端或PC端)
Color hoverColor,
/// 高亮时的颜色
Color highlightColor,
/// 水波纹颜色,按下松开会有水波纹效果
Color splashColor,
/// 按钮主题颜色,默认浅色
Brightness colorBrightness,
/// 默认时的 阴影大小
double elevation,
/// 选中时的 阴影大小
double focusElevation,
/// 指鼠标悬停时的阴影大小
double hoverElevation,
/// 高亮时的阴影大小
double highlightElevation,
/// 不可选中时的阴影大小
double disabledElevation,
/// 内边距 跟布局有关
EdgeInsetsGeometry padding,
VisualDensity visualDensity,
/// 设置按钮的形状
ShapeBorder shape,
/// 切边的样式
Clip clipBehavior = Clip.none,
FocusNode focusNode,
bool autofocus = false,
MaterialTapTargetSize materialTapTargetSize,
/// 动画的时间
Duration animationDuration,
/// 子控件
Widget child,
})
1.1最も単純なRaisedButtonの1つ
RaisedButton(
child: Text("RaisedButton"),
onPressed: () {},
);
効果:
1.2クリックできない状態
RaisedButton(
child: Text("不设置onPressed"),
disabledColor: Colors.blue,
disabledTextColor: Colors.red,
);
onPressed
パラメータを設定しない場合、デフォルトはクリックできません。もちろん、クリックできない場合でも、テキストの色と背景の色を設定できます。これonPressed
は@required
パラメータであることに注意してください。このパラメータを渡さないことはお勧めしません。
1.3テキストの色
RaisedButton(
child: Text("textColor红色"),
textColor: Colors.red,
onPressed: () {},
);
textColor
テキストの色を設定できます。
1.4形状を設定する
RaisedButton(
onPressed: () {},
child: Text("椭圆形"),
shape: StadiumBorder(),
);
shape
ボタンの形状を設定することができることにより、パラメータ共通形状であるRoundedRectangleBorder
矩形、CircleBorder
円形、StadiumBorder
楕円形、BeveledRectangleBorder
及び八角形。
1.5背景色
RaisedButton(
child: Text("背景颜色"),
color: Colors.red,
onPressed: () {},
);
color
ボタンの背景色は、を渡すことで設定できます。
1.6ハイライトカラー
RaisedButton(
onPressed: () {},
child: Text("高亮红色"),
highlightColor: Colors.red,
);
highlightColor
パラメータを渡して、選択時に色を設定します。
1.7ウォーターリップルレッド
RaisedButton(
onPressed: () {},
child: Text("水波纹红色"),
splashColor: Colors.red,
);
splashColor
クリック後の水の波紋の色を設定するのに役立ちます。
1.8ハイライトコールバック
RaisedButton(
child: Text("高亮变化回调"),
onPressed: () {},
onHighlightChanged: (value) {
print("高亮切换");
},
);
onHighlightChanged
ボタンが押されて強調表示されるとコールバックされるコールバックメソッドを受け取ることができます。
1.9長押しコールバック
RaisedButton(
child: Text("长按回调"),
onPressed: () {},
onLongPress: () {
print("长按回调");
},
);
onLongPress
ボタンを長押しするとコールバックされる長押しコールバックメソッドを受け取ることができます。
1.10影のサイズを設定する
RaisedButton(
child: Text("阴影设置20"),
onPressed: () {},
elevation: 20.0,
);
elevation
このパラメーターはシャドウのサイズを設定できます。デフォルトのシャドウは比較的小さく、このパラメーターを使用してより大きなシャドウサイズを設定できます。
上記のコードの実行効果を体験したい場合は、私のGithubウェアハウスプロジェクトflutter_app
-> lib
-> routes
->に移動しflat_button_page.dart
、ダウンロードして実行し、体験することができます。
2.FlatButton
FlatButton
コンストラクターのパラメーターRaisedButton
は基本的にパラメーターと同じであり、設定方法も同じです。
const FlatButton({
Key key,
/// 点击后的回调
@required VoidCallback onPressed,
/// 长按后的回调
VoidCallback onLongPress,
/// 点击 高亮后的回调
ValueChanged<bool> onHighlightChanged,
/// 鼠标指针的光标进入或悬停在此按钮(这个用于Web端或PC端)
MouseCursor mouseCursor,
/// 文本的主题,这个跟MaterialApp的属性theme有关
ButtonTextTheme textTheme,
/// 文字颜色
Color textColor,
/// 不可点击时的文本颜色
Color disabledTextColor,
/// 背景颜色
Color color,
/// 不可点击时的背景颜色
Color disabledColor,
/// 获取焦点时的颜色(用于Web端或PC端)
Color focusColor,
/// 指鼠标悬停时的颜色(用于Web端或PC端)
Color hoverColor,
/// 高亮时的颜色
Color highlightColor,
/// 水波纹颜色,按下松开会有水波纹效果
Color splashColor,
/// 按钮主题颜色,默认浅色
Brightness colorBrightness,
/// 内边距 跟布局有关
EdgeInsetsGeometry padding,
VisualDensity visualDensity,
/// 按钮的形状
ShapeBorder shape,
/// 切边的样式
Clip clipBehavior = Clip.none,
FocusNode focusNode,
bool autofocus = false,
MaterialTapTargetSize materialTapTargetSize,
/// 子控件
@required Widget child,
})
2.1最も単純なFlatButtonの1つ
FlatButton(
child: Text("FlatButton"),
onPressed: () {},
);
対照的RaisedButton
に、FlatButton
デフォルトのフラットスタイルであることがわかります。
2.2形状の設定
FlatButton(
onPressed: () {},
child: Text("椭圆形"),
shape: StadiumBorder(),
);
shape
パラメータを渡すことでFlatButton
形状を設定できます。注意:設定された形状は、クリックしたときにのみ表示されます。
その他のクリックしないステータス、テキストの色、背景の色、ハイライトの色、赤い水の波紋、ハイライトの修正、プレスコールバックのセットアップコード、およびRaisedButton
同じセットアップの他の状態。
FlatButton
実行効果を体験したい場合は、私のGithubリポジトリプロジェクトflutter_app
-> lib
-> routes
->に移動しflat_button_page.dart
、ダウンロードして実行し、体験することができます。
3.アウトラインボタン
OutlineButton
コンストラクターを見てみましょう
const OutlineButton({
Key key,
/// 点击后的回调
@required VoidCallback onPressed,
/// 长按后的回调
VoidCallback onLongPress,
/// 鼠标指针的光标进入或悬停在此按钮(这个用于Web端或PC端)
MouseCursor mouseCursor,
/// 文本的主题,这个跟MaterialApp的属性theme有关
ButtonTextTheme textTheme,
/// 文字颜色
Color textColor,
/// 不可点击时的文本颜色
Color disabledTextColor,
/// 背景颜色
Color color,
/// 获取焦点时的颜色(用于Web端或PC端)
Color focusColor,
/// 指鼠标悬停时的颜色(用于Web端或PC端)
Color hoverColor,
/// 高亮时的颜色
Color highlightColor,
/// 水波纹颜色,按下松开会有水波纹效果
Color splashColor,
/// 高亮时的阴影大小
double highlightElevation,
/// 边框的延时
this.borderSide,
/// 不可用时 边框的颜色
this.disabledBorderColor,
/// 选中时边框的样色
this.highlightedBorderColor,
/// 内边距 跟布局有关
EdgeInsetsGeometry padding,
VisualDensity visualDensity,
/// 按钮的形状
ShapeBorder shape,
/// 切边的样式
Clip clipBehavior = Clip.none,
FocusNode focusNode,
bool autofocus = false,
/// 子控件
Widget child,
})
3.1シンプルなアウトラインボタン
OutlineButton(
onPressed: () {},
child: Text("OutlineButton"),
);
デフォルトでは境界線は灰色で、クリックして選択すると青色に変わります。
3.2ボーダースタイル
OutlineButton(
child: Text("Border颜色"),
borderSide: BorderSide(color: Colors.red, width: 2),
highlightColor: Colors.yellow,
highlightedBorderColor: Colors.green,
onPressed: () {},
);
borderSide
受け取ることができるBorderSide
オブジェクトを、オブジェクトの色と幅を設定することができ、そして私たちもでき、選択した背景色と選択された境界線の色を設定し設定することによって、highlightColor
およびhighlightedBorderColor
。
その他のクリックしないステータス、テキストの色、ハイライトの色、赤い水の波紋、ハイライトの修正、プレスコールバック、その他の状態はRaisedButton
、同じ設定でコードを設定します。
FlatButton
実行効果を体験したい場合は、私のGithubリポジトリプロジェクトflutter_app
-> lib
-> routes
->に移動しoutline_button_page.dart
、ダウンロードして実行し、体験することができます。
4. IconButton
4.1シンプルなIconButton
IconButton(
icon: Icon(Icons.local_taxi),
onPressed: () {},
);
IconButton
Icon
クラスのパラメータを受け取ることができます。FlutterにIcon
は多くの詳細が付属しています。4.1IconButtonと選択されたプロンプトを参照して
ください。
IconButton(
icon: Icon(Icons.local_cafe),
tooltip: "Cafe Button",
color: Colors.red,
onPressed: () {},
);
tooltip
プロパティを設定することにより、ボタンが押されたときのポップアッププロンプトテキストを設定できます。ここで設定したCafe Button
テキスト。
4.2カスタム画像用のIconButton
IconButton(
icon: Image.asset("images/flutter_icon_100.png"),
onPressed: () {},
);
Image
タイプを提供することもできるIcon
ので、さまざまな画像ボタンを設定できます。
以下に示すように:
IconButton
実行効果を体験したい場合は、私のGithubリポジトリプロジェクトflutter_app
-> lib
-> routes
->に移動しicon_button_page.dart
、ダウンロードして実行し、体験することができます。
上記はマテリアルスタイルボタンと詳細な説明です。クパチーノスタイルボタンについて知りたい場合は、ここをクリックしてください。
私たちの日常の開発のほとんどでは、マテリアルスタイルのスタイルを使用します。