Flutter-虛線組件

1.XFDashedLine效果展示

目的:實現(xiàn)效果的同時匾二,提供定制,并且可以實現(xiàn)水平和垂直兩種虛線效果:

  • axis:確定虛線的方向嚼锄;
  • dashedWidth:根據(jù)虛線的方向確定自己虛線的寬度;
  • dashedHeight:根據(jù)虛線的方向確定自己虛線的高度;
  • count:內(nèi)部會根據(jù)設(shè)置的個數(shù)和寬高確定密度(虛線的空白間隔)煤傍;
  • color:虛線的顏色
image.png

暫時實現(xiàn)上面的定制,后續(xù)有新的需求繼續(xù)添加新的功能點~

2. 實現(xiàn)思路分析

實現(xiàn)比較簡單嘱蛋,主要是根據(jù)用戶傳入的方向確定添加對應(yīng)的SizedBox即可蚯姆。

這里有一個注意點:虛線到底是設(shè)置多寬或者多高呢?

  • 我這里是根據(jù)方向獲取父Widget的寬度和高度來決定的洒敏;
  • 通過LayoutBuilder可以獲取到父Widget的寬度和高度龄恋;
return LayoutBuilder(
      builder:(BuildContext context,BoxConstraints constraints){
        //根據(jù)寬度計算個數(shù)
        return Flex(
          direction: this.axis,
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: List.generate(this.count, (int index){
            return SizedBox(
              width: dashedWidth,
              height: dashedHeight,
              child: DecoratedBox(
                decoration: BoxDecoration(color: color),
              ),
            );
          }),
        );
      },
    );

3. XFDashedLine代碼實現(xiàn)

import 'package:flutter/material.dart';

class XFDashedLine extends StatelessWidget {

  final Axis axis;
  final double dashedWidth;
  final double dashedHeight;
  final int count;
  final Color color;

  XFDashedLine({
    @required this.axis,
    this.dashedWidth = 1,
    this.dashedHeight = 1,
    this.count,
    this.color = const Color(0xffff0000)
});

  @override
  Widget build(BuildContext context) {
    return LayoutBuilder(
      builder:(BuildContext context,BoxConstraints constraints){
        //根據(jù)寬度計算個數(shù)
        return Flex(
          direction: this.axis,
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: List.generate(this.count, (int index){
            return SizedBox(
              width: dashedWidth,
              height: dashedHeight,
              child: DecoratedBox(
                decoration: BoxDecoration(color: color),
              ),
            );
          }),
        );
      },
    );
  }
}

使用代碼:

child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Container(
              width: 400,
                child: XFDashedLine(
                  axis: Axis.horizontal,
                  count: 8,
                  dashedWidth: 30,
                  dashedHeight: 2,
                )
            ),
            SizedBox(height: 50,),
            Container(
              height: 400,
                child: XFDashedLine(
                  axis: Axis.vertical,
                  count: 10,
                  dashedWidth: 2,
                  dashedHeight: 30,
                  color: Colors.blue,
                )
            ),
          ],
        ),

學(xué)習(xí)內(nèi)容來自Flutter從入門到實戰(zhàn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凶伙,隨后出現(xiàn)的幾起案子郭毕,更是在濱河造成了極大的恐慌,老刑警劉巖函荣,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件显押,死亡現(xiàn)場離奇詭異,居然都是意外死亡傻挂,警方通過查閱死者的電腦和手機乘碑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來踊谋,“玉大人蝉仇,你說我怎么就攤上這事。” “怎么了轿衔?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵沉迹,是天一觀的道長。 經(jīng)常有香客問我害驹,道長鞭呕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任宛官,我火速辦了婚禮葫松,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘底洗。我一直安慰自己腋么,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布亥揖。 她就那樣靜靜地躺著珊擂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪费变。 梳的紋絲不亂的頭發(fā)上摧扇,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音挚歧,去河邊找鬼扛稽。 笑死,一個胖子當著我的面吹牛滑负,可吹牛的內(nèi)容都是我干的在张。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼橙困,長吁一口氣:“原來是場噩夢啊……” “哼瞧掺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凡傅,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肠缔,沒想到半個月后夏跷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡明未,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年槽华,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趟妥。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡猫态,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亲雪,我是刑警寧澤勇凭,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站义辕,受9級特大地震影響虾标,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜灌砖,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一璧函、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧基显,春花似錦蘸吓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至摸航,卻和暖如春制跟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酱虎。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工雨膨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人读串。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓聊记,卻偏偏與公主長得像,于是被迫代替她去往敵國和親恢暖。 傳聞我的和親對象是個殘疾皇子排监,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容