flutter web有三種渲染模式,auto 、html 和 canvaskit。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),蓮都企業(yè)網(wǎng)站建設(shè),蓮都品牌網(wǎng)站建設(shè),網(wǎng)站定制,蓮都網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,蓮都網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
flutter build web命令默認(rèn)的渲染模式為auto,這種模式在移動(dòng)端使用html渲染,在pc端使用canvaskit渲染。
目前我的flutter版本是2.5.2,pc端瀏覽器使用canvaskit渲染時(shí)中文會(huì)出現(xiàn)短暫的亂碼(方塊叉號(hào)),像這樣:
我們可以指定渲染模式為html,就不會(huì)有這個(gè)問(wèn)題了,命令如下:
指定渲染模式為canvaskit的命令為:
2021.10.21:flutter web對(duì)中文的支持貌似不太好,在手機(jī)瀏覽器調(diào)試web項(xiàng)目時(shí),textfield hinttext有中文輸入會(huì)有卡頓bug
想要在WPS表格中把漢字轉(zhuǎn)換成拼音或小寫(xiě)字母,只需要運(yùn)用模塊代碼編輯功能就能輕松解決,具體操作方法如下:
步驟1、打開(kāi)要轉(zhuǎn)換成拼音的excel表格,按“Alt+F11”組合鍵,進(jìn)入Visual Basic編輯狀態(tài)。也就是看到的這個(gè)灰色的編輯界面。
步驟2、執(zhí)行“插入→模塊”命令,插入一個(gè)新模塊。再雙擊插入的模塊,進(jìn)入模塊代碼編輯狀態(tài)。
步驟3、看到如下界面。
步驟4、把下面的所有內(nèi)容復(fù)制,粘貼到步驟4中的空白處。
Function?pinyin(p?As?String)?As?String
i?=?Asc(p)
Select?Case?i
Case?-20319?To?-20318:?pinyin?=?"a?"
Case?-20317?To?-20305:?pinyin?=?"ai?"
Case?-20304?To?-20296:?pinyin?=?"an?"
Case?-20295?To?-20293:?pinyin?=?"ang?"
Case?-20292?To?-20284:?pinyin?=?"ao?"
Case?-20283?To?-20266:?pinyin?=?"ba?"
Case?-20265?To?-20258:?pinyin?=?"bai?"
Case?-20257?To?-20243:?pinyin?=?"ban?"
Case?-20242?To?-20231:?pinyin?=?"bang?" ?
Case?-20230?To?-20052:?pinyin?=?"bao?"
Case?-20051?To?-20037:?pinyin?=?"bei?"
Case?-20036?To?-20033:?pinyin?=?"ben?"
Case?-20032?To?-20027:?pinyin?=?"beng?"
Case?-20026?To?-20003:?pinyin?=?"bi?"
Case?-20002?To?-19991:?pinyin?=?"bian?"
Case?-19990?To?-19987:?pinyin?=?"biao?"
Case?-19986?To?-19983:?pinyin?=?"bie?"
Case?-19982?To?-19977:?pinyin?=?"bin?"
Case?-19976?To?-19806:?pinyin?=?"bing?"
Case?-19805?To?-19785:?pinyin?=?"bo?"
Case?-19784?To?-19776:?pinyin?=?"bu?"
Case?-19775?To?-19775:?pinyin?=?"ca?"
Case?-17721?To?-17704:?pinyin?=?"he?"
Case?-17703?To?-17702:?pinyin?=?"hei?"
Case?-17701?To?-17698:?pinyin?=?"hen?"
Case?-17697?To?-17693:?pinyin?=?"heng?"
Case?-17692?To?-17684:?pinyin?=?"hong?"
Case?-17683?To?-17677:?pinyin?=?"hou?"
Case?-17676?To?-17497:?pinyin?=?"hu?"
步驟5、按下ALT+Q關(guān)閉Visual Basic編輯窗口,返回Excel編輯狀態(tài)。
步驟6、選中轉(zhuǎn)換后的拼音需要放在哪個(gè)列,例如要把B列的第2行的內(nèi)容轉(zhuǎn)換成拼音,放在D列的第2個(gè)單元格,輸入公式:=getpy(B2),這里的B2,是指源頭單元格的坐標(biāo)。
步驟7、如果要去除拼音之間的空格。去掉空格的拼音放在E列,如果這個(gè)未去掉空格的數(shù)據(jù)原來(lái)在D2單元格,去掉空格之后的拼音放在E2單元格,則在E2單元格輸:?=SUBSTITUTE(D2," ","")。
項(xiàng)目中存在一個(gè)輸入框,只能提交中文字符串,于是使用了如下的方法實(shí)現(xiàn)
但是上線運(yùn)行之后,發(fā)現(xiàn)在iOS原生拼音輸入法中,只能一個(gè)字一個(gè)字輸入,每次輸入超過(guò)一個(gè)字就會(huì)直接變成拼音字母,并且長(zhǎng)度限制在遇到中文拼音輸入法后也會(huì)失效
于是通過(guò)自定義過(guò)濾器的方法,解決了這個(gè)問(wèn)題
關(guān)鍵方法在于判斷當(dāng)前輸入框是否存在未完成的字符串,如果存在,則不做限制,否則根據(jù)參數(shù)進(jìn)行限制
但是屬性 composing 聽(tīng)說(shuō)還存在bug,使用的時(shí)候要注意,很有可能還有坑等著????
參考:
解決方案:
頓悟:
感謝???? Alex 大神?。。?/p>
上一篇講到如果解決ios長(zhǎng)按輸入框報(bào)錯(cuò)的問(wèn)題,但是最終沒(méi)有達(dá)到我們的要求,因?yàn)槲覀兿雽?shí)現(xiàn)中文的提示,那么本篇文章講講如何來(lái)實(shí)現(xiàn)多語(yǔ)言配置;
1.首先在pubspec.yaml的dependencies下加入這個(gè)
flutter_localizations:
sdk: flutter
如圖:
2.然后在MaterialApp設(shè)置一下localizationsDelegates如圖:
3.寫(xiě)一個(gè)類繼承一下CupertinoLocalizations,在項(xiàng)目中 我這個(gè)類名叫ChineseCupertinoLocalizations(沒(méi)錯(cuò),就是localizationsDelegates中的第三個(gè)),如圖:
上次提到報(bào)錯(cuò)的原因就是因?yàn)閏utButtonLabel,copyButtonLabel,pasteButtonLabel,selectAllButtonLabel 這幾個(gè)按鈕沒(méi)有實(shí)現(xiàn),所以繼承CupertinoLocalizations一定要為這幾個(gè)按鈕賦值,這里是那種語(yǔ)言,那么,賦值就對(duì)應(yīng)那種語(yǔ)言,同時(shí)要注意locale.languageCode也要填寫(xiě),如果你是中文,那么locale.languageCode =='zh';
4.在ios工程中,在項(xiàng)目的info設(shè)置語(yǔ)言環(huán)境
添加?Localization native development region---china
添加一個(gè)Localizations 為array類型的,并且設(shè)置值為?Chinese (simplified)
效果圖:( 注意:請(qǐng)把手機(jī)環(huán)境調(diào)試成中文的語(yǔ)言環(huán)境 )
Android?
ios 效果圖
我公司用flutter做了一個(gè)《柚品生活》的app,感興趣的朋友可以去看看,Android和ios都已經(jīng)上架了
最后附上GitHub項(xiàng)目地址 GitHub - hxxsocket/flutter_lg_demo: flutter多語(yǔ)言配置之中文
文字默認(rèn)是英文,需要設(shè)置 Flutter 國(guó)際化來(lái)處理
在 pubspec.yaml 中集成 flutter_localizations
然后在 main.dart --- MaterialApp 中設(shè)置本地化代理和支持的語(yǔ)言類型
我最開(kāi)始的時(shí)候沒(méi)加,在iOS上長(zhǎng)按會(huì)報(bào)錯(cuò),需要加上這一行
如果 pubspec.yaml 集成插件因?yàn)榘姹締?wèn)題報(bào)錯(cuò),自己又不知道使用哪個(gè)版本,可以使用any集成,它會(huì)自己尋找合適的版本