国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Flutter控件--Row、Column和Stack

劉厚水 / 2746人閱讀

摘要:也是中常用的控件。屬性主軸對準方式對于來說,水平是主軸。對于,交叉軸是水平。由左到右,左為頭,右為尾表示在水平方向主軸。表示從左上角開始排文本方向,的流動方向表示超過的部分是否裁剪掉不剪掉。默認是是包裹的高度即可。

flutter控件練習demo地址:github

一 Row 和 Column 1. 簡介

因為 Row 和 Column 都是繼承于 Flex,所以他們兩個的屬性也都是 Flex 的屬性

Row 是 Flutter 中常用的控件。一個讓 children 在水平方向依次排列 。如果 Row 空間 不足的話。 自身不帶滾動的。

Column 也是 Flutter 中常用的控件。 一個 children 在垂直方向依次排列 。如果 Column 空間 不足的話。 自身不帶滾動的。

2. 屬性

2.1 mainAxisAlignment (主軸對準方式)

對于 Row 來說 , 水平是主軸。垂直是 交叉軸。 對于 Column 來說, 垂直是主軸。水平是 交叉軸 把 children 放到 主軸 的哪個位置 。 如果要驗證這個屬性,記住把 mainAxisSize 設置成 MainAxisSize.max ,

取值說明樣式圖片(Rowd 的demo)
MainAxisAlignment.start(默認值)把 children 放到主軸的頭部
MainAxisAlignment.center 把 children 放到主軸的中間
MainAxisAlignment.end 把 children 放到主軸的尾部
MainAxisAlignment.spaceAround 將主軸方向空白區(qū)域均分,使得children之間空間相等,但是首尾 childre 的空白部分為一半
MainAxisAlignment.spaceBetween 將主軸方向空白區(qū)域均分,使得children之間空間相等,但是首尾childre靠近收尾,沒有空細逢
MainAxisAlignment.spaceEvenly 將主軸方向空白區(qū)域均分,使得children之間空間相等,包括首尾childre

2.2 mainAxisSize

也就是來規(guī)定自己( Row 或者 Column )的大小。

MainAxisSize.min : 主軸方向,包裹住 childre 即可。相當于 android 中的 wrap_content

MainAxisSize.max(默認值) : 主軸方向,鋪滿 ( Row 或者 Column )的父 Widget 的大小。 相當于 android 中的 match_parent

2.3 crossAxisAlignment (交叉軸)跟主軸垂直的一個軸

交叉軸 顧名思義: 就是 跟 主軸 垂直的 一個軸 對于 Row 。交叉軸 是 在垂直。對于 Column,交叉軸 是水平 。下面還是 以 Row 舉個例子

取值 說明 圖片demo(Row)
CrossAxisAlignment.start 把 children 放到交叉軸的頭部
CrossAxisAlignment.end 把 children 放到交叉軸的尾部
CrossAxisAlignment.center 把 children 放到交叉軸的中間
CrossAxisAlignment.stretch 讓children填滿交叉軸方向 無(沒有測試出來,控件 找不到了)
CrossAxisAlignment.baseline 讓children 于 baseline 對齊,如果主軸是垂直的,那么這個值是當作開始 ,設置了此 屬性 textBaseline 不能為 null

2.4 textDirection

children 在 主軸 怎樣排列。 正方向排列還是反方向排列

Row

TextDirection.ltr : 表示在水平方向(主軸)。由左到右 , 左為頭 , 右為尾

TextDirection.rtl :表示在水平方向(主軸)。由右到左 , 右為頭 , 左為尾

Column

TextDirection.ltr : 表示在垂直方向(主軸)。由上到下 , 上為頭 , 下為尾

TextDirection.rtl :表示在垂直方向(主軸)。由下到上 , 下為頭 ,上為尾

2.5 verticalDirection

children 在 交叉軸 怎樣排列。 正方向排列還是反方向排列

Row

VerticalDirection.down : 表示在垂直方向(交叉軸)。由上到下 , 上為頭 , 下為尾

VerticalDirection.up :表示在垂直方向(交叉軸)。由下到上 , 下為頭 , 上為尾

Column

VerticalDirection.down : 表示在水平方向(交叉軸)。由左到右 , 左為頭 , 右為尾

TextDirection.rtl :表示在水平方向(交叉軸)。由右到左 , 右為頭 , 左為尾

二 Stack

取代線性布局 (和Android中的LinearLayout相似,但是我感覺怎么這么像 FrameLayout 呢?),Stack允許子 widget 堆疊, 你可以使用 Positioned 來定位他們相對于Stack的上下左右四條邊的位置。Stacks是基于Web開發(fā)中的絕度定位(absolute positioning )布局模型設計的。用于將多個childs相對于其框的邊緣定位,多用于以簡單方式重疊children

2.1 屬性

alignment: 默認值。AlignmentDirectional.topStart ( AlignmentDirectional(-1.0, -1.0) )。 表示從左上角開始排 children

textDirection: 文本方向 , children 的流動方向

overflow: 表示 超過的部分是否裁剪掉 Overflow.visible 不剪掉。 Overflow.clip 減掉

fit: 讓 children 怎樣填充 Stack 。

StackFit.passthrough 不改變子節(jié)點約束 也就是說 children 是多大就是多大

StackFit.expand 子節(jié)點最大可能的占用空間 ,讓 children 的大小 擴大到 Stack 的大小

StackFit.loose:放開了子節(jié)點寬高的約束,可以讓子節(jié)點從0到最大尺寸

三 demo圖片

demo 代碼

import "package:flutter/material.dart";

class LayoutDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Scaffold(
      appBar: AppBar(
        title: Text("row"),
        centerTitle: true,
      ),
      body: RowDemo(),
    );
  }
}

class RowDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    final _list = [
      RaisedButton(
        disabledColor: Colors.red,
        child: Text("兒子1"),
      ),
      Text("兒子2"),
      Text("兒子3"),
      Text("兒子4"),
      Text("兒子5"),
    ];
    return Column(
      children: [
        SizedBox(
          height: 30,
        ),
        Container(
          color: Colors.grey,
          child: Row(
            // 主軸(main axis)
            // 把 children 放到 Column 主軸 的哪個位置
            //  end : 尾部, start :頭部, center : 中間 ,spaceBetween:在 children 之間均勻地放置 空間 ,spaceAround : 每個 children
            mainAxisAlignment: MainAxisAlignment.start,

            // 此 Row 的寬度。默認是 MainAxisSize.max
            //          MainAxisSize.min 是 包裹 children 的高度 即可  。android 中 相當于 wrap_content
            //          MainAxisSize.max 是 鋪滿 Row 的父 Widget 的寬度  。android 中 相當于 match_parent
            //  如果設置成 MainAxisSize.min 。 那么 mainAxisAlignment 屬性相當于無效。 因為是包裹 children
            mainAxisSize: MainAxisSize.max,
            // 交叉軸(cross axis)
            // 把 children 放到 Column 主軸 的哪個位置
            // end : 尾部, start :頭部, center : 中間 ,
            crossAxisAlignment: CrossAxisAlignment.start,
            // children 在主軸 的排列順序
            textDirection: TextDirection.ltr,
            // children 在 交叉軸 的排列順序
            verticalDirection: VerticalDirection.down,
            children: _list,
          ),
        ),
        SizedBox(
          height: 30,
        ),
        SizedBox(
            width: 200,
            height: 200,
            child: Stack(
              alignment: AlignmentDirectional.topStart,
//            alignment:   AlignmentDirectional(-1.0, -1.0),
              fit: StackFit.loose,
              overflow: Overflow.visible,
              children: [
                Container(
                  color: Colors.black,
                  height: 200,
                  width: 200,
                ),
                Container(
                  color: Colors.deepPurple,
                  height: 100,
                  width: 100,
                ),
                Container(
                  color: Colors.green,
                  height: 50,
                  width: 50,
                ),
              ],
            )),
      ],
    );
  }
}

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/7002.html

相關文章

  • Flutter交互實戰(zhàn)-即刻App探索頁下拉&拖拽效果

    摘要:前言最近比較熱門,但是成體系的文章并不多,前期避免不了踩坑我這篇文章主要介紹如何使用實現(xiàn)一個比較復雜的手勢交互,順便分享一下我在使用過程中遇到的一些小坑,減少大家入坑作者鏈接先睹為快本項目支持運行,效果如下對了,順便分享一下生成的小竅門,建 前言 Flutter最近比較熱門,但是Flutter成體系的文章并不多,前期避免不了踩坑;我這篇文章主要介紹如何使用Flutter實現(xiàn)一個比較復雜...

    wdzgege 評論0 收藏0
  • Flutter交互實戰(zhàn)-即刻App探索頁下拉&拖拽效果

    摘要:前言最近比較熱門,但是成體系的文章并不多,前期避免不了踩坑我這篇文章主要介紹如何使用實現(xiàn)一個比較復雜的手勢交互,順便分享一下我在使用過程中遇到的一些小坑,減少大家入坑作者鏈接先睹為快本項目支持運行,效果如下對了,順便分享一下生成的小竅門,建 前言 Flutter最近比較熱門,但是Flutter成體系的文章并不多,前期避免不了踩坑;我這篇文章主要介紹如何使用Flutter實現(xiàn)一個比較復雜...

    miracledan 評論0 收藏0
  • flutter筆記7:flutter頁面布局基礎,看完這篇就可以用flutter寫APP了

    摘要:布局控件不會直接呈現(xiàn)內(nèi)容,可看作承載可視控件的容器。布局控件也是可以模擬顯示的,通常用于調(diào)試布局樣式時用到的網(wǎng)格線標尺動畫幀等。但是當頁面內(nèi)容需要超出屏幕尺寸時,就用和代替。 不知不覺已經(jīng)到了第7篇,然而很多萌新玩家可能還是不知道如何堆砌控件,像用CSS一樣搭出漂亮的APP界面,我也一樣,紅紅火火恍恍惚惚,直到今天含淚讀完Flutter布局基礎,仿佛打開了一個全新的世界。 基本概念 在...

    Flink_China 評論0 收藏0
  • flutter筆記8:實戰(zhàn)聊天頁面嵌入交互動畫IOS風格適配

    摘要:當發(fā)送按鈕觸發(fā)事件后調(diào)用函數(shù),在中執(zhí)行了方法,此時根據(jù)中的變量變更重新渲染對象,然后大家就可以看到消息記錄框中底部新增了一行消息。 熟悉了flutter的各種控件和相互嵌套的代碼結構后,可以再加深一點難度:加入動畫特效。 雖然flutter的內(nèi)置Metarial控件已經(jīng)封裝好了符合其設計語言的動畫特效,使開發(fā)者節(jié)約了不少視覺處理上的精力,比如點擊或長按listTile控件時自帶水波紋動...

    NervosNetwork 評論0 收藏0
  • Flutter控件--RadioRadioListTile

    摘要:控件練習地址一。單選框中的單選框,和一樣本身沒有狀態(tài),必須父親有狀態(tài)才能改變值屬性此的值當選擇此的時候的回調(diào)。flutter控件練習demo地址:github 一。Radio (單選框) flutter 中的單選框 , 和 Checkbox 一樣 本身沒有狀態(tài),必須父親有狀態(tài) 才能改變值 1.1 屬性 value: 此 Radio 的 value 值 onChanged: 當選擇此 ...

    stefanieliang 評論0 收藏0

發(fā)表評論

0條評論

劉厚水

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<