欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

flutter圖解,簡書 flutter

Flutter 121: 圖解簡易 Slider 滑動條

小菜在業(yè)務(wù)開發(fā)過程中會自定義 Slider 滑動條,而在自定義之前,小菜先簡單了解一下 Flutter 自帶的 Slider ;

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東勝,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575

簡單分析源碼可得, Slider 是一個有狀態(tài)的 StatefulWidget 組件,屬性也很清晰易懂,其中滑動過程中對應(yīng)的 value 值和 onChanged 回調(diào)是必須參數(shù);

value 未滑動過程中對應(yīng)的值,在 min 和 max 之間; onChanged 是在滑動過程中回調(diào),當(dāng) onChanged 為 null 或 value 所在的 min 和 max 集合范圍為空時, Slider 禁止滑動;

min 和 max 為滑動條范圍,而 value 的取值范圍是在 min 和 max 之間,無論 value 為正還是負(fù),均需要在 min 和 max 之間;

activeColor 為滑動條已滑動過的顏色; inactiveColor 為滑動條中未滑動的顏色;兩者均可以在 SliderTheme 中設(shè)置;

label 為滑動條滑動到某一節(jié)點(diǎn)的標(biāo)簽文案; divisions 是把 min 和 max 等分為 divisions 份數(shù);只有在 divisions 生效時, label 才會展示;

onChangeStart 和 onChangeEnd 分別對應(yīng)滑動過程中 value 值何時開始更改或何時完成更改時對應(yīng)的回調(diào);

Slider 的主題效果可以通過 SliderTheme 或 ThemeData.sliderTheme 中獲取更新,相較于 Slider 只提供已滑動和未滑動顏色效果,屬性粒度更細(xì);

activeTrackColor 和 inactiveTrackColor 分別對應(yīng) Slider 已滑動過和未滑動過的軌道顏色;

thumbColor 對應(yīng)滑動按鈕顏色,而 overlayColor 對應(yīng)滑動按鈕映射的疊層顏色,通常設(shè)置為半透明狀態(tài); overlayShape 對應(yīng)疊層樣式;

valueIndicatorColor 對應(yīng) label 氣泡顏色; valueIndicatorShape 對應(yīng)氣泡內(nèi)文字屬性; valueIndicatorShape 對應(yīng)氣泡樣式,可以再此進(jìn)行自定義氣泡;

activeTickMarkColor 對應(yīng)已選中刻度顏色; inactiveTickMarkColor 對應(yīng)未選中刻度顏色; tickMarkShape 對應(yīng)刻度樣式;

trackHeight 為 Slider 軌道高度; trackShape 對應(yīng)軌道樣式,主要再此處進(jìn)行自定義樣式;

對于不可滑動狀態(tài), SliderThemeData 提供了對應(yīng)屬性;

Slider 案例源碼

小菜本節(jié)暫未涉及自定義滑動條樣式,對于底層的 Slider 了解還不夠深入;如有錯誤,請多多指導(dǎo)!

Flutter 22: 圖解 PopupMenu 那些事兒

小菜需要處理標(biāo)題欄彈出對話框 PopupMenu 樣式, Flutter 當(dāng)然提供了一些處理方式,類似 PopupMenuEntry 等,小菜僅就最基礎(chǔ)的使用方式進(jìn)行初步的學(xué)習(xí)和整理。

PopupMenuItem 為單個 item 的彈出樣式,默認(rèn)為 48px 高,可根據(jù)需求自行定義。 item 中可以自定義需要的樣式,包括文字圖片等一系列樣式。

Tips: 若需要處理帶圖標(biāo)的樣式時,官網(wǎng)提供的 Demo 是借助的 ListTile 來處理的,但是小菜測試發(fā)現(xiàn)圖標(biāo)與文字距離偏大,原因在于 ListTile 默認(rèn)左側(cè)圖標(biāo) leading 距離不可直接調(diào)整,建議用 Row 或其他方式調(diào)整。

CheckedPopupMenuItem 是一個帶有復(fù)選標(biāo)記的彈出菜單項。默認(rèn)高度同樣是 48px ,水平布局使用 ListTile 復(fù)選標(biāo)記是 Icons.done 圖標(biāo),顯示在 leading 位置;同時只有在狀態(tài)為選中時才會顯示圖標(biāo)。

PopupMenuDivider 是一條水平分割線,注意數(shù)組要使用父類 PopupMenuEntry ,配合其他 item 樣式共同使用。 PopupMenuDivider 可以調(diào)整高度,但無法調(diào)整顏色,有需要的話可以進(jìn)行自定義。

PopupMenu 默認(rèn)的彈框位置都是在右上角,且會擋住標(biāo)題欄,如果有需要在其他位置彈框就需要借助 showMenu ,主要通過 position 屬性定位彈框位置。

menu 的寬高與內(nèi)容相關(guān),小菜的理解是在水平和豎直方向上會將設(shè)置的 position 位置加上 menu 寬高,再與屏幕匹配,超過屏幕寬高,根據(jù) position 按照 LTRB 順序貼近屏幕邊框展示。

Tips: 如果 item 個數(shù)過多也無需擔(dān)心,F(xiàn)lutter 支持默認(rèn)超過屏幕滑動效果。

小菜目前的學(xué)習(xí)還僅限于基本的使用,稍高級的自定義涉及較少,如果又不對的地方還希望多多指出。

Flutter 56: 圖解自定義 BubbleWidget 氣泡插件

小菜在學(xué)習(xí)時需要用到氣泡效果,為了更加靈活,小菜封裝了一個簡單的 flutter_bubble 氣泡插件,方便日常的使用;

小菜準(zhǔn)備用 Canvas 的 drawPath 進(jìn)行繪制,主要分為三個部分,圓角弧線,普通直線,尖角折線,均可由 drawPath 自帶方法繪制;小菜以前整理過關(guān)于 Canvas 繪制的小博客,實(shí)現(xiàn)很簡單;

小菜繪制了一個簡陋的原型圖,整體黑框?yàn)? Bubble Widget 整體范圍;藍(lán)色圓弧為圓角位置;紅色尖角可根據(jù)上下左右參數(shù)進(jìn)行配置,且只可展示一個,尖角的高度和角度可自由配置,當(dāng)確定一個尖角位置時,其余三個方向?qū)捀哐由斓胶诳虿糠郑欢染€則是連接圓角與尖角等直線;中間空余部分為子 Widget 位置; Tips: Child Widget 寬高小于等于 Bubble Widget ;

首先在邊角處繪制四個圓弧,直接用 arcTo 即可,需要注意的是:小菜整體以 drawPath 方式實(shí)現(xiàn),準(zhǔn)備從左上角開始順時針繪制,所以繪制圓弧時也是順時針方向;

小菜理解, Rect 為繪制圓角的矩形,包括位置及大小; startAngele 為起始角度; sweepAngle 為繪制弧形角度;小菜需要的四個圓弧大小均為 pi/2 ,只需調(diào)整矩形位置與起始角度即可;

其次繪制尖角,小菜的尖角是由 lineTo 兩段直線拼接起來的,只需要處理起點(diǎn)與終點(diǎn)即可;小菜為了更加靈活,可以設(shè)置尖角高度與尖角角度(0 ~ 180),通過三角函數(shù)進(jìn)行計算;

最后就是將處理好的連接起來,小菜為了適應(yīng)更多場景,尖角位置也可自由配置,長度為到圓角的距離,默認(rèn)為邊框中間位置;

小菜將配置邏輯編輯好發(fā)布到 Pub 庫,基本 BubbleWidget 便完成,簡單分析一下可配置項;

自定義 Bubble Widget 是小菜發(fā)布的第二款 Pub 插件,還有很多不完善的地方,如有錯誤請多多指導(dǎo)!

網(wǎng)頁標(biāo)題:flutter圖解,簡書 flutter
標(biāo)題URL:http://chinadenli.net/article47/dsischj.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)服務(wù)器托管Google標(biāo)簽優(yōu)化手機(jī)網(wǎng)站建設(shè)網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化