flutter-按鈕組件

截屏2024-10-09 16.06.02.png

class Buttondemo extends StatefulWidget {
  const Buttondemo({super.key});

  @override
  State<Buttondemo> createState() => _ButtondemoState();
}

class _ButtondemoState extends State<Buttondemo> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("按鈕組件"),
      ),
      body: Center(
        child: Column(
          children: [
            Padding(
              padding: const EdgeInsets.all(15.0),
              child: ElevatedButton(
                  onPressed: _onPressed, child: const Text("ElevatedButton")),
            ),
            FilledButton(
                onPressed: _onPressed, child: const Text("FilledButton")),
            FilledButton.tonal(
                onPressed: _onPressed, child: const Text("FilledButton.tonal")),
            FilledButton.tonalIcon(
                onPressed: _onPressed,
                label: const Text("FilledButton.tonalIcon")),
            OutlinedButton(
                onPressed: _onPressed, child: const Text("OutlinedButton")),
            TextButton(onPressed: _onPressed, child: const Text("TextButton")),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceAround,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                Ink(
                  decoration: const ShapeDecoration(
                      shape: CircleBorder(), color: Colors.blue),
                  child: IconButton(
                    onPressed: _onPressed,
                    iconSize: 30,
                    icon: const Icon(Icons.import_contacts),
                    color: Colors.white,
                  ),
                ),
                IconButton(
                    onPressed: _onPressed,
                    icon: const Icon(Icons.import_contacts),
                    iconSize: 30,
                    style: ButtonStyle(
                        backgroundColor:
                            PJButtonBackGroundColor(context, Colors.blue),
                        foregroundColor:
                            PJButtonBackGroundColor(context, Colors.white))),
              ],
            ),
            SizedBox(
              width: MediaQuery.of(context).size.width - 30,
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                children: [
                  PJFilledButton(
                    onPressed: () {
                      print("置頂");
                    },
                    title: "置頂",
                    bgColors: ColorUtil.hexColorString("#F3AC31"),
                    fogColors: Colors.white,
                  ),
                  PJFilledButton(
                      onPressed: () {
                        print("優(yōu)先推廣了");
                      },
                      title: "優(yōu)先推廣",
                      bgColors: ColorUtil.hexColorString("#469DBF"),
                      fogColors: Colors.white),
                ],
              ),
            )
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton.extended(
          onPressed: _onPressed,
          backgroundColor: Colors.blue,
          foregroundColor: Colors.white,
          label: const Text("FloatingActionButton.extended")),
    );
  }

  void _onPressed() {}
}

class PJFilledButton extends StatelessWidget {
  const PJFilledButton(
      {super.key,
      required this.title,
      required this.bgColors,
      required this.fogColors,
      this.onPressed});
  final String title;
  final Color bgColors;
  final Color fogColors;
  final VoidCallback? onPressed;
  @override
  Widget build(BuildContext context) {
    return SizedBox(
      width: 120,
      child: FilledButton(
        onPressed: onPressed,
        style: ButtonStyle(
            backgroundColor: PJButtonBackGroundColor(context, bgColors),
            foregroundColor: PJButtonBackGroundColor(context, fogColors)),
        child: Text(title),
      ),
    );
  }
}



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末翅阵,一起剝皮案震驚了整個(gè)濱河市裤园,隨后出現(xiàn)的幾起案子绅喉,更是在濱河造成了極大的恐慌媒怯,老刑警劉巖推正,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件觅赊,死亡現(xiàn)場離奇詭異龙助,居然都是意外死亡蔗坯,警方通過查閱死者的電腦和手機(jī)康震,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宾濒,“玉大人腿短,你說我怎么就攤上這事』婷危” “怎么了橘忱?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卸奉。 經(jīng)常有香客問我钝诚,道長,這世上最難降的妖魔是什么榄棵? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任敲长,我火速辦了婚禮,結(jié)果婚禮上秉继,老公的妹妹穿的比我還像新娘祈噪。我一直安慰自己,他們只是感情好尚辑,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布辑鲤。 她就那樣靜靜地躺著,像睡著了一般杠茬。 火紅的嫁衣襯著肌膚如雪月褥。 梳的紋絲不亂的頭發(fā)上弛随,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機(jī)與錄音宁赤,去河邊找鬼舀透。 笑死,一個(gè)胖子當(dāng)著我的面吹牛决左,可吹牛的內(nèi)容都是我干的愕够。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼佛猛,長吁一口氣:“原來是場噩夢啊……” “哼惑芭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起继找,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤遂跟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后婴渡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幻锁,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年边臼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了越败。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡硼瓣,死狀恐怖究飞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情堂鲤,我是刑警寧澤亿傅,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站瘟栖,受9級特大地震影響葵擎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜半哟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一酬滤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧寓涨,春花似錦盯串、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春几缭,著一層夾襖步出監(jiān)牢的瞬間河泳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工年栓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拆挥,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓某抓,卻偏偏與公主長得像纸兔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子搪缨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345