真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

flutter卡片展示的簡(jiǎn)單介紹

Flutter開(kāi)發(fā)--如何布局?

相對(duì)于iOS開(kāi)發(fā),F(xiàn)lutter的布局更具有靈活性,每個(gè)頁(yè)面設(shè)計(jì)都不一樣,相同頁(yè)面可選擇的布局方式也不一樣,如果單純的說(shuō)應(yīng)該如何去布局,我覺(jué)得不現(xiàn)實(shí),大家可以參考下 Flutter官方的布局教程 。接下來(lái),筆者,通過(guò)項(xiàng)目中的一個(gè)頁(yè)面,來(lái)一步一步的拆解布局的流程。整個(gè)過(guò)程,基本上按照拆解、組件封裝、具體布局這三步來(lái)的。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:國(guó)際域名空間、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、永善網(wǎng)站維護(hù)、網(wǎng)站推廣。

根據(jù)設(shè)計(jì)圖,可以看出整體可以分成兩部分,上面一部分是系統(tǒng)介紹模塊,下面一部分是真正的登錄內(nèi)容,因?yàn)樯婕暗蒋B加,因此考慮用Stack;

系統(tǒng)介紹模塊部分:整體也是涉及到疊加,考慮用Stack,分為四部分。最底部漸變色背景用一個(gè)contanier,無(wú)須指定位置,全視圖擴(kuò)展;載放logo圖標(biāo)在上一層,用Image。最后兩個(gè)Text同級(jí)放在最上層。Image,Text各用Positioned包裹去指定位置。

登錄內(nèi)容模塊是最外層是一個(gè)Contanier容器,去控制背景色和圓角。然后是一個(gè)Column元素,逐行排列。

第一行為Image,

第二行為T(mén)ext,

第三行可以看成一個(gè)小Column,分兩塊進(jìn)行布局

第四行可以看成一個(gè)小Column,分兩塊進(jìn)行布局

第五行可以看作一個(gè)TextButton,

第六行可以看作一個(gè)Row,分三塊進(jìn)行布局

通過(guò)上面這樣一步一步的分析后,基本上對(duì)大致的布局有了一個(gè)了解,最外層的控件大致選對(duì)(只要能實(shí)現(xiàn)的話(huà),就是復(fù)雜度以及效率的問(wèn)題),然后一步一步的拆解每一行的元素,如果有重復(fù)的或者覺(jué)得可以封裝出來(lái)的部分,則進(jìn)行下一步。

每一行的拆解,大致也是按照這個(gè)思路來(lái)進(jìn)行,因此筆者在這里就不做講解了。

在做到第三第四行的時(shí)候,發(fā)現(xiàn)這兩個(gè)很相似,而且設(shè)計(jì)到一些交互邏輯,筆者就想對(duì)第三第四行的這種展示進(jìn)行封裝,覺(jué)得今后的布局可能會(huì)用到,因此在這一步,可以先把這一塊兒抽離出一個(gè)控件。利用TextField來(lái)實(shí)現(xiàn)這種輸入操作,具體的實(shí)現(xiàn)筆者不再詳細(xì)的描述了。

經(jīng)過(guò)這一步,整體的規(guī)劃設(shè)計(jì)圖已經(jīng)有了,各個(gè)組件也都有了,接下來(lái)的工作就是組裝了。

具體布局設(shè)計(jì)到一些細(xì)節(jié)的地方,例如整體Column的居中對(duì)齊(crossAxisAlignment)、間隔(Padding或Container包裹,筆者更喜歡用SizedBox占位)、居左居右居中(Align)、點(diǎn)擊事件(GestureDetector)以及圓角(BorderRadius)等一些特殊情況。

像第六行row是放在底部的,就可以在第六行前面增加一個(gè)Spacer()去填充空白區(qū)域。

對(duì)文字顏色大小等,可以用TextStyle直接設(shè)置。

對(duì)于輸入框的刪除按鈕,可以用Offstage這種Flutter特有的控制顯示隱藏的控件。

flutter-實(shí)現(xiàn)一個(gè)簡(jiǎn)單的展開(kāi)收起動(dòng)畫(huà)

使用Tween動(dòng)畫(huà),改變控件距左距離

展開(kāi)時(shí),展示菜單控件,動(dòng)畫(huà)正向執(zhí)行;收起后,動(dòng)畫(huà)反向執(zhí)行,隱藏菜單控件;

flutter_inappbrowser和h5交互

需求,app中使用webview和h5交互,根據(jù)h5發(fā)過(guò)來(lái)的消息,在屏幕上展示flutter組件,并且可以發(fā)送消息給h5。

首先使用的組件是flutter_WebView_plugin,這個(gè)組件不能嵌套flutter組件,所以放棄這個(gè)組件。

flutter_inappbrowser 可以實(shí)現(xiàn)組合布局, 所以選用了此庫(kù), GitHub鏈接

[

flutter加載h5很卡

flutter加載h5很卡的解決方法如下:

一種臨時(shí)解決方案,在切換動(dòng)畫(huà)加載完畢后,再去構(gòu)造 WebView,這樣從用戶(hù)角度上看,就不會(huì)有路由切換動(dòng)畫(huà)的卡頓了。class WebViewPage extends StatefulWidget {undefined

final String uri;

WebViewPage({undefined

@required this.uri,

}) : assert(uri != null);

@override

_WebViewPageState createState() = _WebViewPageState();

}

class _WebViewPageState extends State {undefined

WebViewController _controller;

bool _animationCompleted = false;

@override

Widget build(BuildContext context) {undefined

// 主要是下面的代碼

var route = ModalRoute.of(context);

if (route != null !_animationCompleted) {undefined

void handler(status) {undefined

if (status == AnimationStatus.completed) {undefined

route.animation.removeStatusListener(handler);

setState(() {undefined

_animationCompleted = true;

});

}

}

route.animation.addStatusListener(handler);

}

return Scaffold(

title: widget.title,

backgroundColor: Colors.white,

body: _animationCompleted

? WebView(

initialUrl: 'about:blank',

onWebViewCreated: (WebViewController webViewController) {undefined

_controller = webViewController;

_loadHtmlFromAssets();

},

)

: Container(),

);

}

_loadHtmlFromAssets() async {undefined

var uri = Uri.dataFromString(

await rootBundle.loadString(widget.uri),

mimeType: 'text/html',

encoding: Encoding.getByName('utf-8'),

).toString();

_controller.loadUrl(uri);

}

}

Fluent是目前國(guó)際上比較流行的商用CFD軟件包,在美國(guó)的市場(chǎng)占有率為60%,凡是和流體、熱傳遞和化學(xué)反應(yīng)等有關(guān)的工業(yè)均可使用。

它具有豐富的物理模型、先進(jìn)的數(shù)值方法和強(qiáng)大的前后處理功能,在航空航天、汽車(chē)設(shè)計(jì)、石油天然氣和渦輪機(jī)設(shè)計(jì)等方面都有著廣泛的應(yīng)用。

FLUENT軟件包含基于壓力的分離求解器、基于密度的隱式求解器、基于密度的顯式求解器,多求解器技術(shù)使FLUENT軟件可以用來(lái)模擬從不可壓縮到高超音速范圍內(nèi)的各種復(fù)雜流場(chǎng)。

FLUENT軟件包含非常豐富、經(jīng)過(guò)工程確認(rèn)的物理模型,由于采用了多種求解方法和多重網(wǎng)格加速收斂技術(shù),因而FLUENT能達(dá)到最佳的收斂速度和求解精度。

靈活的非結(jié)構(gòu)化網(wǎng)格和基于解的自適應(yīng)網(wǎng)格技術(shù)及成熟的物理模型,可以模擬高超音速流場(chǎng)、傳熱與相變、化學(xué)反應(yīng)與燃燒、多相流、旋轉(zhuǎn)機(jī)械、動(dòng)/變形網(wǎng)格、噪聲、材料加工等復(fù)雜機(jī)理的流動(dòng)問(wèn)題。

Flutter快速上手8:基礎(chǔ)布局之輔助布局

水平垂直居中布局。類(lèi)似Container設(shè)置alignment

固定寬高布局,類(lèi)似Container設(shè)置了寬高

寬高比布局。

四、FractionallySizedBox

百分比布局。

這里注意百分比布局外層一定是一個(gè)有大小的容器(如SizedBox、Container),否則會(huì)報(bào)錯(cuò)。

卡片布局。

本地Flutter 2.10.1,Mac版Android Studio Bumblebee | 2021.1.1 Patch 2

我是小栗子,初學(xué)Flutter ,文章會(huì)根據(jù)學(xué)習(xí)進(jìn)度不定時(shí)更新,請(qǐng)多多指教~~

Flutter 之 Sliver 系列控件

SliverAppBar 控件,一個(gè) MD 的 AppBar 。屬性和 AppBar 類(lèi)似,但做的效果比 AppBar 更加強(qiáng)大。相同的屬性具體可以看 Flutter 之 Scaffold 控件 , 里面有 AppBar 控件的介紹。那么還有些沒(méi)有的屬性:

結(jié)合 elevation 使用,當(dāng)elevation 不為 0 的時(shí)候,是否顯示陰影

AppBar 展開(kāi)時(shí)候的高度

true 的時(shí)候下滑AppBar優(yōu)先滑動(dòng)展示,展示完成后才給滑動(dòng)控件滑動(dòng)

snap 為 true, 則 floating 也要為 true 。true 的時(shí)候根據(jù)手指松開(kāi)的位置展開(kāi)或者收縮AppBar

appBar 收縮到最小高度的時(shí)候 appBar 是否可見(jiàn)

SliverAppBar 往往做為 CustomScrollView 的第一個(gè)子元素,根據(jù)滾動(dòng)控件的偏移量或者浮動(dòng)的位置來(lái)改變 SliverAppBar 的高度。所以具體用法如下

另外在上面設(shè)計(jì)到 FlexibleSpaceBar 控件,F(xiàn)lexibleSpaceBar 有個(gè) collapseMode 屬性

為 Sliver 系列控件添加一個(gè) padding 。如給上面 SliverAppBar 添加一個(gè) Padding 。

多行多列的列表控件,相當(dāng)于 Android 的 GridView,有兩個(gè)屬性

SliverChildDelegate,這里有兩種方式創(chuàng)建

SliverGridDelegate,也是有兩種方式創(chuàng)建

結(jié)合上面展示效果

和上面 delegate 屬性一樣,需要?jiǎng)?chuàng)建一個(gè) SliverChildDelegate 。

比 SliverList 多一個(gè) itemExtent 屬性,設(shè)置 item 的高度 。item 里面的子控件無(wú)法再改動(dòng)高度。

上面 SliverAppBar 就是結(jié)合 SliverPersistentHeader 實(shí)現(xiàn)的效果,SliverPersistentHeader 需要一個(gè) SliverPersistentHeaderDelegate 。 實(shí)現(xiàn) SliverPersistentHeaderDelegate 有 4 個(gè)方法需要重寫(xiě)

至于效果,具體效果具體分析。

有一個(gè) Widget 屬性,主要作用是在 CustomScrollView 里面添加多種不同布局的樣式。

占滿(mǎn)一屏或者比一屏更多的布局,

滑動(dòng)剩余部分展示的布局


分享文章:flutter卡片展示的簡(jiǎn)單介紹
新聞來(lái)源:http://weahome.cn/article/dsddhih.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部