共通ボタンコンポーネントでフラッターなどのカスタムボタンコンポーネント

A、フラッタ導入ボタンコンポーネント
  フラッターは、Buttonコンポーネントのとてもたくさんを持っている一般的なコンポーネントは、ボタンがあります。RaisedButton、FlatButton、
  IconButton、OutlineButton、ButtonBarコントロール、FloatingActionButton等。
  RaisedButtonは:実際には、ボタンを突き出し、材料設計スタイルボタン
  FlatButton:フラットボタン
  OutlineButton:ワイヤーフレームボタン
  IconButton:アイコンボタン
  ButtonBar:ボタンのグループ
  FloatingActionButton:フローティングボタン
 
二、プロパティのいくつかのフラッターボタンアセンブリ
onPressed VoidCallbackは、一般的に無効に関連スタイル表示されるボタンを無効にするにはnullを渡し、ボタンが押されたときにコールバックは、受信方法をトリガされ、必須パラメータ法を受け、
子ウィジェット
textColor色テキストの色
カラーカラーボタンの色
DisabledColor色のカラーボタンが無効になっています
テキストの色ボタンがときdisabledTextColor色無効になっています
splashColorカラー水波ときにボタンの色
highlightColorカラーをクリック(押し)ボタンの色ボタンの後
標高二重影、シャドウ大きい値範囲の範囲
パディングパディング
形状は、ボタンの形状を提供しました
   形状:RoundedRectangleBorder(
      borderRadius:
      BorderRadius.circular(10)、
   )
  形状:CircleBorder(
     サイド:BorderSide(
        色:Colors.white、
    )
  ) 
 
 
ケースコード
 
インポート'パッケージ:フラッター/ material.dart'; 

クラスButtonDemoPageはStatelessWidget {延び
スーパー(キー:キー)CONST ButtonDemoPage({キーキーを})。

@Override
ウィジェットビルド(BuildContextコンテキスト){
リターン足場(
アプリケーションバー(:アプリケーションバー
タイトル:テキスト( "按钮演示页面")、
アクション<ウィジェット> [
IconButton(
アイコン:アイコン(Icons.settings)、
onPressed:(){

} 、

]、
)、
ボディ:カラム(
mainAxisAlignment:MainAxisAlignment.center、
子供:<ウィジェット> [
行(
mainAxisAlignment:MainAxisAlignment.center、
子供<ウィジェット> [
RaisedButton(
子:テキスト( '押しボタン')、
onPressed:(){
印刷( "プッシュボタン");
}
)、
SizedBox(幅:. 5)、
RaisedButton(
子:テキスト( 'カラーボタン')、
色:Colors.blue、
の、textColor:Colors.white、
onPressed:(){
プリント( "着色ボタン");
}
)、
SizedBox(幅:. 5)、
RaisedButton(
子:テキスト( 'シャドウボタン')、
カラー:Colors.blue、
の、textColor:Colors.white、
標高:20である、
onPressed:(){
プリント( "斜線ボタン");
}
)、
SizedBox(幅: 。5)、
RaisedButton.icon(
アイコン:アイコン(Icons.search)、
ラベル:テキスト( 'アイコンボタン')、
色:Colors.blue、
の、textColor:Colors.white、
// onPressed:ヌル、
onPressed:(){
印刷( "ボタンアイコン");
})
]
)、
SizedBox(高さ:10)、
行(
mainAxisAlignment:MainAxisAlignment.center、
子供<ウィジェット>
コンテナ(
高さ:50、
幅:400、
子供:RaisedButton(
チャイルド:テキスト( '幅高さは')、
カラー:Colors.blue、
の、textColor:Colors.white、
標高:20である、
onPressed:(){
プリント( "幅高さ");
}
)、

]、
)、
SizedBox(高さ:10)、
行(
mainAxisAlignment:MainAxisAlignment.center、
子供:<ウィジェット> [
拡張(
子:コンテナ(
高さ:60、
マージン:EdgeInsets.all(10)、
子供:RaisedButton (
子:テキスト( '自适应按钮')、
色:Colors.blue、
の、textColor:Colors.white、
標高:20、
onPressed:(){
プリント( "適応ボタン");
}



]
)、
SizedBox(高さ:10)、
行(
mainAxisAlignment:MainAxisAlignment.center、
子供<ウィジェット> [
RaisedButton(
子:テキスト(「フィレットボタン「)、
カラー:Colors.blue、
の、textColor:Colors.white、
標高:20は、
形状:RoundedRectangleBorder(
borderRadius:BorderRadius.circular(10))、
onPressed:(){
印刷( "ボタンフィレット");
})、
コンテナ(
高さ:80、
子供:RaisedButton(
子:テキスト( 'ラジオボタン')、
色:Colors.blue、
の、textColor:Colors.white、
標高:20は、ある
splashColor:Colors.red、
形状:
CircleBorder(横:BorderSide(カラー:Colors.white))、
onPressed:(){
プリント( "ラジオボタン");
})
)、
FlatButton(
子:テキスト( "按钮")、
色:Colors.blue、
の、textColor:Colors.yellow、
onPressed:(){
プリント( 'FlatButton');
}
)、
SizedBox(幅:10)、
OutlineButton(
子:テキスト( "按钮")、
//色:Colors.red、//没有效果
//の、textColor:Colors.yellow、
onPressed:(){
プリント( 'FlatButton');
})
]
)、
SizedBox(高さ:10)、
行(
mainAxisAlignment:MainAxisAlignment.center、
子供:<ウィジェット> [
拡張(
子:コンテナ(
マージン:EdgeInsets.all(20)、
高さ:50、
子供:OutlineButton(子:テキスト( "注册「)、onPressed:(){}) )
] )、 ロー( mainAxisAlignment:MainAxisAlignment.end、 子供<ウィジェット> のButtonBar( 子供<ウィジェット> [









RaisedButton(
子:テキスト( 'ログイン')、
カラー:Colors.blue、
の、textColor:Colors.white、
標高:20は、ある
onPressed:(){
プリント( "幅高さ");
}
)、
RaisedButton(
子:テキスト( '登録')、
色:Colors.blue、
の、textColor:Colors.white、
標高:20である、
onPressed:(){
プリント( "幅高さ");
}
)、
MyButtonという(テキスト: "カスタムボタン"、高さ:60.0、幅:100.0、押下:(){
プリント(「カスタムボタン「);
})

]

]

]
));
}
}


/ /カスタムボタンコンポーネント

クラス延びMyButtonというStatelessWidget {
最終テキスト、
最終が押され、
最終的な幅は、
最終的な高さ、
MyButtonというCONST(This.Text = {「」、this.pressed =ヌル、this.width = 80、30 = this.height });

@Override
ウィジェットビルド(BuildContextコンテキスト){
リターンコンテナ(
高さ:this.height、
幅:this.width、
子供:RaisedButton(
子:テキスト(this.text)、
onPressed:this.pressed、
)、
);
}
}

おすすめ

転載: www.cnblogs.com/zhaofeis/p/12342990.html