新聞中心
Dart 枚舉原始值指定問題 及 原始值與枚舉值轉(zhuǎn)換問題
最近在看嘗試Flutter,在開發(fā)時打算用枚舉標(biāo)示5個常用的按鍵KeyCode,因為就值關(guān)系特定幾個KeyCode,所以打算僅設(shè)定5個枚舉值,并且指定其原始值為其int值。但是我發(fā)現(xiàn)沒辦法指定這個int值。
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、平江網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、電子商務(wù)商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為平江等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
Dart語言的枚舉不支持指定原始值,比如下面這種方式:
這樣一來,如果想使枚舉值有一個比較大的原始值,就只能使用本文件中KeyCode這種方式。一般如下:
但是如果我只想用Brown到Pink顏色這幾種顏色,并且其原始值在100以上呢?比如鍵盤KeyCode??就有好多。
另外Dart語言枚舉值到原始值的轉(zhuǎn)換,直接取其index即可:
但卻不支持從int原始值轉(zhuǎn)換為枚舉值,比如下面這種方式:
但enum提供了一個values屬性,比如上面枚舉有:
Color.values是一個有序數(shù)組,其下標(biāo)和該位置的Color枚舉值的原始值相等。
所以,如果一個枚舉滿足:1. 從零開始,2. 各個值密集排布,(Dart肯定滿足,因為沒辦法指定原始值),
則可以通過下面方式實現(xiàn)原始值到枚舉值的轉(zhuǎn)換:
參考:
高德地圖 flutter 報LocationManager:doRequireLocationAuth錯誤
在flutter中使用高德地圖,突然報如標(biāo)題的錯誤,一開始我以為是plist文件沒有加位置授權(quán),一檢查發(fā)現(xiàn)權(quán)限都有,想著以前這定位都正常的,應(yīng)該是改了其他地方引起定位不了的,一一對比,是我permission_handler這個插件升級了,升級后ios這邊要在podfile文件下加一下權(quán)限配置
target.build_configurations.eachdo |config|
# You can remove unused permissions here
# for more infomation:
# e.g. when you don't need camera permission, just add 'PERMISSION_CAMERA=0'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS']||= [
'$(inherited)',
## dart: PermissionGroup.calendar
? ? 'PERMISSION_EVENTS=1',
## dart: PermissionGroup.reminders
? ? 'PERMISSION_REMINDERS=1',
## dart: PermissionGroup.contacts
? ? 'PERMISSION_CONTACTS=1',
## dart: PermissionGroup.camera
? ? 'PERMISSION_CAMERA=1',
## dart: PermissionGroup.microphone
? ? 'PERMISSION_MICROPHONE=1',
## dart: PermissionGroup.speech
? ? 'PERMISSION_SPEECH_RECOGNIZER=1',
## dart: PermissionGroup.photos
? ? 'PERMISSION_PHOTOS=1',
## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
? ? 'PERMISSION_LOCATION=1',
## dart: PermissionGroup.notification
? ? 'PERMISSION_NOTIFICATIONS=1',
## dart: PermissionGroup.mediaLibrary
? ? 'PERMISSION_MEDIA_LIBRARY=1',
## dart: PermissionGroup.sensors
? ? 'PERMISSION_SENSORS=1',
## dart: PermissionGroup.bluetooth
#? ? ? ? 'PERMISSION_BLUETOOTH=1',
## dart: PermissionGroup.appTrackingTransparency
? ? 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',
## dart: PermissionGroup.criticalAlerts
? ? 'PERMISSION_CRITICAL_ALERTS=1',
]
end
新聞標(biāo)題:包含flutterenum的詞條
文章URL:http://fisionsoft.com.cn/article/dsdsgjh.html