Flutter中Widget的滾動布局

2021-10-04 07:13:19 字數 2552 閱讀 7887

介紹一些常用的滾動布局,可參考flutter中文網 裡【滾動】模組 的介紹。

1.listview2.gridview3.customscrollview

一、 listview.

官方文件中介紹listview有四種建立方式:

(1). listview 預設構造方法。

(2). builder listview.builder().

(3). separated listview.separated().

(4). custom

listview的核心**演示:

①1.listview預設構造方法

class listviewbuilderdemo1 extends statelesswidget 

}

②. listview.builder()構造方法
class listviewbuilderdemo2 extends statelesswidget ,

);}}

③. listview.separated()構造方法
class listviewseparateddemo3 extends statelesswidget ,

separatorbuilder: (buildcontext ctx, int index) ,

);}}

效果圖如下所示:

小結:

(1).listview 預設構造方法:一次性生成count(假如count=100)數量的item,所以適合數量較少的情況;

(2).listview.builder():通過懶載入的方式,當需要展示的時候再建立展示,所以該構造方法最常用;

(3).listview.separated():預設新增分割線,但是該方法不能控制item的固定高度,item高度是根據文字內容自適應高度的。

二、 gridview.

官方文件中介紹gridview有五種建立方式:

gridview

builder

count

custom

extent

gridview 的核心**演示:

① gridview 預設構造方法

class gridviewdemo1 extends statelesswidget ),

);}}

② gridview.build 構造方法

class gridviewbuilddemo1 extends statelesswidget 

);}}

③ gridview.count構造方法

class gridviewdemo2 extends statelesswidget ,

),);

}}

效果如下圖所示:

三、 customscrollview.

官方文件中介紹customscrollview僅一種構造方法:customscrollview

class customscrollview1 extends statelesswidget ,

childcount: 100

),),

],);

}}

customscrollview複雜頁面布局

class customscrollview2 extends statelesswidget ,

childcount: 10

),),

sliverlist(

delegate: sliverchildbuilderdelegate(

(buildcontext ctx, int index) ,

childcount: 20),)

],);

}}

效果圖如下:

tips:demo位址

以上是對flutter中幾種常見布局的學習,便於日後查閱。

Flutter中Widget與Element關係

widget widget 是 flutter 世界裡對檢視的一種結構化描述,你可以把它看作是前端中的 控制項 或 元件 widget 是控制項實現的基本邏輯單位,裡面儲存的是有關檢視渲染的配置資訊,包括布局 渲染屬性 事件響應資訊等。實際上,flutter 種真正代表螢幕上顯示元素的類時eleme...

在Flutter中給widget新增動畫

在android中,可以通過通過xml建立動畫或在檢視上呼叫view.animate 對檢視進行動畫處理。在flutter中,可以通過動畫庫給widget新增動畫,將widget包裝到animation中。與android相似,在flutter中,有乙個animationcontroller控制器和...

Flutter布局總結(一) 單個widget

flutter布局機制的核心是widget 首先了解下布局結構 此ui顯示乙個行包含3列,其中每列包含乙個圖示和乙個標籤 此ui的widget樹圖如下 container是乙個widget,允許自定義其子widget。如果要新增填充 邊距 邊框或者是背景色,需要使用container來設定 在flu...