Flutter-Stack的使用

Flutter-Stack

Stack的定義

Stack和Container,Column,Row基本上一樣,都是一種存放其他Widget的容器,不同點(diǎn)在于Row、Column、Stash中存放的是一組Widget;Container每次只能放一個(gè)WIdget;具體請(qǐng)查看Stack的定義:

Stack({
    Key key,
    this.alignment = AlignmentDirectional.topStart,//設(shè)置子Widget開始展示的位置,從頂部開始展示
    AlignmentDirectional.topCenter//從頂部中間開始展示
    AlignmentDirectional.topEnd//從頂部結(jié)束位置展示
    AlignmentDirectional.centerStart//從中間開始位置開始展示
    AlignmentDirectional.center//從正中間展示
    AlignmentDirectional.centerEnd//從中間結(jié)束位置展示
    AlignmentDirectional.bottomStart//從底部開始位置展示
    AlignmentDirectional.bottomCenter//從底部中間位置展示
    AlignmentDirectional.bottomEnd//從底部結(jié)束位置展示
    this.textDirection,//設(shè)置子widget的左右顯示方位
    this.fit = StackFit.loose,//設(shè)置沒有通過positioned包裹的子widget的size,loose表示,以他子widget最大的size展示
    StackFit.expand//stack的size等于他父widget的size
    this.overflow = Overflow.clip,子widget超出stack時(shí)的截取方式,參考Text的溢出截取方式
    List<Widget> children = const <Widget>[],//一組子widgets
})

Stack的使用說明

Stack里面可以存放各種Widget,不過有一個(gè)缺點(diǎn)就是所有的子widget都是重疊放在一起的,請(qǐng)看事例代碼

Stack(
//        alignment: AlignmentDirectional.center,
    textDirection: TextDirection.rtl,
//        fit: StackFit.passthrough,
    children: <Widget>[
      Container(
        color: Colors.redAccent,
        width: 100.0,
        height: 100.0,
        child: Text('data'),
      ),
  Icon(Icons.settings),
//          Positioned(
//            top: 10,
//            left: 60,
//            child: Icon(Icons.settings),),
      Icon(Icons.opacity),

      Icon(Icons.ondemand_video),
    ],
  )
stack.jpg

為了能夠使stack里面的子widget分開展示,需要借助于Positioned這個(gè)widget來輔助,可以通過Positioned來設(shè)置上下左右,寬高等屬性,具體按照需要進(jìn)行設(shè)置

Stack(
//        alignment: AlignmentDirectional.center,
    textDirection: TextDirection.rtl,
//        fit: StackFit.passthrough,
    children: <Widget>[
      Container(
        color: Colors.redAccent,
        width: 100.0,
        height: 100.0,
        child: Text('data'),
      ),
      Positioned(
        top: 10,
        left: 60,
        child: Icon(Icons.settings),),
      Icon(Icons.opacity),

      Icon(Icons.ondemand_video),
    ],
  )
stack1.jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容