Flutter 枚舉值enum和int互相轉(zhuǎn)化總結(jié)
一、需求來源
工作中偶爾會(huì)用到枚舉值和 int 的互相轉(zhuǎn)化,今天總結(jié)一下;
二、搞清楚 Flutter 枚舉屬性和方法
三、實(shí)現(xiàn)需求(以 PageView 滾動(dòng)方式為例)
枚舉值轉(zhuǎn) int:在當(dāng)前索引值后加 .index 即可(默認(rèn)從 0 開始);
int 轉(zhuǎn)枚舉值:需要擴(kuò)展枚舉方法實(shí)現(xiàn),實(shí)現(xiàn)如下;
定義枚舉 PageViewScrollType
/// PageView 滾動(dòng)方式 enum PageViewScrollType { /// 整屏滑動(dòng) full, /// 拖拽滑動(dòng) drag, /// 禁用滑動(dòng) none, } extension PageViewScrollType_IntExt on int{ /// int 轉(zhuǎn)枚舉 PageViewScrollType? toPageViewScrollType([bool isClamp = true]){ final allCases = PageViewScrollType.values; if (!isClamp) { if (this < 0 || this > allCases.length - 1) { return null; } return allCases[this]; } final index = this.clamp(0, allCases.length - 1); return allCases[index]; } /// int 轉(zhuǎn)枚舉 PageViewScrollType get pageViewScrollType{ final allCases = PageViewScrollType.values; // final index = this.clamp(0, allCases.length - 1); // return allCases[index]; return this.toPageViewScrollType(true) ?? allCases.first; } }
最后
如此就實(shí)現(xiàn)了 枚舉值和 int的互相轉(zhuǎn)化,打印如下:
print("枚舉值索引: ${PageViewScrollType.full.index}"); print("枚舉值字符串: ${PageViewScrollType.drag.toString()}"); print("枚舉集合: ${PageViewScrollType.values}"); print("int 轉(zhuǎn)枚舉: ${0.toPageViewScrollType()}");
//枚舉值索引: 0
//枚舉值字符串: PageViewScrollType.drag
//枚舉集合: [ PageViewScrollType.full, PageViewScrollType.drag, PageViewScrollType.none ]
//int 轉(zhuǎn)枚舉: PageViewScrollType.full
以上就是Flutter 枚舉值enum和int互相轉(zhuǎn)化總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Flutter枚舉值enum int互相轉(zhuǎn)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android TextWatcher三個(gè)回調(diào)以及監(jiān)聽EditText的輸入案例詳解
這篇文章主要介紹了Android TextWatcher三個(gè)回調(diào)以及監(jiān)聽EditText的輸入案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Android中EditText光標(biāo)在4.0中的bug及解決方法
這篇文章主要介紹了Android中EditText光標(biāo)在4.0中的bug及解決方法,簡(jiǎn)單分析了Android4.0版本中EditText光標(biāo)消息的原因及相應(yīng)的解決方法,需要的朋友可以參考下2016-01-01Android編程實(shí)現(xiàn)仿心跳動(dòng)畫效果的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)仿心跳動(dòng)畫效果的方法,實(shí)例分析了Android基于線程實(shí)現(xiàn)動(dòng)畫過度效果的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11Android?Flutter制作一個(gè)修改組件屬性的動(dòng)畫
flutter為我們提供了一個(gè)AnimationController來對(duì)動(dòng)畫進(jìn)行詳盡的控制,不過直接是用AnimationController是比較復(fù)雜的,如果只是對(duì)一個(gè)widget的屬性進(jìn)行修改,可以做成動(dòng)畫嗎,本文就來探討一下2023-05-05Flutter使用AnimationController實(shí)現(xiàn)控制動(dòng)畫
這篇文章主要想帶大家來嘗試一下Flutter如何使用AnimationController實(shí)現(xiàn)一個(gè)拖拽圖片,然后返回原點(diǎn)的動(dòng)畫,感興趣的可以了解一下2023-05-05Android listview ExpandableListView實(shí)現(xiàn)多選,單選,全選,edittext實(shí)現(xiàn)批量輸入
這篇文章主要介紹了Android listview ExpandableListView實(shí)現(xiàn)多選,單選,全選,edittext實(shí)現(xiàn)批量輸入的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01基于Android studio3.6的JNI教程之opencv實(shí)例詳解
這篇文章主要介紹了基于Android studio3.6的JNI教程之opencv實(shí)例詳解,本文通過實(shí)例代碼截圖的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03android FM播放時(shí)拔出耳機(jī)后FM APP自動(dòng)close解決方法
android FM播放時(shí)拔出耳機(jī)后FM APP自動(dòng)close關(guān)閉的情況應(yīng)該怎樣解決呢?下面為大家詳細(xì)介紹下具體修改方法,感興趣的朋友可以參考下2013-06-06Android自帶倒計(jì)時(shí)控件Chronometer使用方法詳解
這篇文章主要為大家詳細(xì)介紹了Android自帶倒計(jì)時(shí)控件Chronometer的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11