Flutter控制widget可見性

Offstage

通過設置offstage來控制控件當顯示和隱藏巡蘸,隱藏后的控件不占據空間

屬性名 類型 說明
offstage bool true:隱藏控件,false:展示控件
class _VisibilityViewState extends BaseState<VisibilityView> {
  bool _visible = true;

  @override
  Widget buildView(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(top: 100),
      child: Center(
        child: Column(
          children: [
            Text("title"),
            Visibility(
              child: Text("hello"),
              visible: _visible,
              replacement: Text("replacement"),
            ),
            OutlinedButton(
                onPressed: () {
                  setState(() {
                    _visible = !_visible;
                  });
                },
                child: Text("switch"))
          ],
        ),
      ),
    );
  }
}
offstage-true
offstage-false

Opacity

設置組件的不透明度

屬性名 類型 說明
opacity double 組件的不透明度0.0-1.0
不透明度為1

不透明度為0.5
class _OpacityViewState extends BaseState<OpacityView> {
  double _opacity = 1;
  TextEditingController _controller = TextEditingController(text: "1");

  @override
  Widget buildView(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(top: 100),
      margin: EdgeInsets.symmetric(horizontal: 50),
      child: Center(
        child: Column(
          children: [
            Text("title"),
            Opacity(
              child: Text("opacity"),
              opacity: _opacity,
            ),
            TextField(
              controller: _controller,
            ),
            OutlinedButton(
                onPressed: () {
                  setState(() {
                    _opacity = double.tryParse(_controller.text) ?? 1;
                  });
                },
                child: Text("set"))
          ],
        ),
      ),
    );
  }
}

IgnorePointer

通過設置ignoring屬性饵骨,使其具備或失去接收觸摸事件的能力

屬性名 類型 說明
ignoring bool true:無法接收觸摸事件
class _IgnoreViewState extends BaseState<IgnoreView> {
  bool _ignore = true;

  @override
  Widget buildView(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(top: 100),
      child: Center(
        child: Column(
          children: [
            Text("title"),
            IgnorePointer(
              child: OutlinedButton(
                  onPressed: () {
                    print('_IgnoreViewState.buildView_click');
                  },
                  child: Text("click")),
              ignoring: _ignore,
            ),
            OutlinedButton(
                onPressed: () {
                  setState(() {
                    _ignore = !_ignore;
                  });
                },
                child: Text("switch"))
          ],
        ),
      ),
    );
  }
}

Visibility

通過設置visible來展示或者隱藏子控件,并且可以設置在隱藏子控件時展示占位控件
常用屬性

屬性名 類型 說明
child widget 子控件
visible bool 展示還是隱藏子控件
replacement widget 隱藏子控件時展示當占位控件
class _VisibilityViewState extends BaseState<VisibilityView> {
  bool _visible = true;

  @override
  Widget buildView(BuildContext context) {
    return Container(
      padding: EdgeInsets.only(top: 100),
      child: Center(
        child: Column(
          children: [
            Text("title"),
            Visibility(
              child: Text("hello"),
              visible: _visible,
              replacement: Text("replacement"),
            ),
            OutlinedButton(
                onPressed: () {
                  setState(() {
                    _visible = !_visible;
                  });
                },
                child: Text("switch"))
          ],
        ),
      ),
    );
  }
}
visible-true
visible-false
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末茫打,一起剝皮案震驚了整個濱河市居触,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌老赤,老刑警劉巖轮洋,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異抬旺,居然都是意外死亡弊予,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門开财,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汉柒,“玉大人,你說我怎么就攤上這事床未〗叽洌” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵薇搁,是天一觀的道長斋扰。 經常有香客問我,道長啃洋,這世上最難降的妖魔是什么传货? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮宏娄,結果婚禮上问裕,老公的妹妹穿的比我還像新娘。我一直安慰自己孵坚,他們只是感情好粮宛,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著卖宠,像睡著了一般巍杈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扛伍,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天筷畦,我揣著相機與錄音,去河邊找鬼刺洒。 笑死鳖宾,一個胖子當著我的面吹牛吼砂,可吹牛的內容都是我干的。 我是一名探鬼主播鼎文,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼渔肩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漂问?” 一聲冷哼從身側響起赖瞒,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤女揭,失蹤者是張志新(化名)和其女友劉穎蚤假,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吧兔,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡磷仰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了境蔼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灶平。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖箍土,靈堂內的尸體忽然破棺而出逢享,到底是詐尸還是另有隱情,我是刑警寧澤吴藻,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布瞒爬,位于F島的核電站,受9級特大地震影響沟堡,放射性物質發(fā)生泄漏侧但。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一航罗、第九天 我趴在偏房一處隱蔽的房頂上張望禀横。 院中可真熱鬧,春花似錦粥血、人聲如沸柏锄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽趾娃。三九已至,卻和暖如春蜓耻,著一層夾襖步出監(jiān)牢的瞬間茫舶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工刹淌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留饶氏,地道東北人讥耗。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像疹启,于是被迫代替她去往敵國和親古程。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容