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

php篩選數(shù)組中的數(shù)據(jù)庫(kù),php數(shù)組查詢

Flutter TextField 長(zhǎng)按出現(xiàn)的 ”復(fù)制/粘貼“文字改為中文

文字默認(rèn)是英文,需要設(shè)置 Flutter 國(guó)際化來(lái)處理

10余年的紹興網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整紹興建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“紹興網(wǎng)站設(shè)計(jì)”,“紹興網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

在 pubspec.yaml 中集成 flutter_localizations

然后在 main.dart --- MaterialApp 中設(shè)置本地化代理和支持的語(yǔ)言類型

我最開始的時(shí)候沒加,在iOS上長(zhǎng)按會(huì)報(bào)錯(cuò),需要加上這一行

如果 pubspec.yaml 集成插件因?yàn)榘姹締栴}報(bào)錯(cuò),自己又不知道使用哪個(gè)版本,可以使用any集成,它會(huì)自己尋找合適的版本

撲 的單詞怎么寫 英文單詞

有很多種說(shuō)法:attack flap pounce on rush at snap throw oneself on

詞典釋義

動(dòng)詞

1.(使身體迅速地伏在物體上) throw oneself on; pounce on

2.(把全部精力用到工作、 事業(yè)等上面) dedicate all one's energies to a cause; devote

3.(撲打; 進(jìn)攻) rush at; attack

4.(拍打;拍) flap; flutter

5.[方] (伏) bend over

名詞

1.(撲粉用具) puff

以后查詞,建議你用這個(gè)電子詞典:

Flutter 上字體的另類玩法:FontFeature

在以前的 《Flutter 上默認(rèn)的文本和字體知識(shí)點(diǎn)》 和 《帶你深入理解 Flutter 中的字體“冷”知識(shí)》 中,已經(jīng)介紹了很多 Flutter 上關(guān)于字體有趣的知識(shí)點(diǎn),而本篇講繼續(xù)介紹 Flutter 上關(guān)于 Text 的一個(gè)屬性: FontFeature , 事實(shí)上相較于 Flutter ,本篇內(nèi)容可能和前端或者設(shè)計(jì)關(guān)系更密切 。

什么是 FontFeature ? 簡(jiǎn)單來(lái)說(shuō)就是影響字體形狀的一個(gè)屬性 ,在前端的對(duì)應(yīng)領(lǐng)域里應(yīng)該是 font-feature-settings ,它有別于 FontFamily ,是用于指定字體內(nèi)字的形狀的一個(gè)參數(shù)。

我們知道 Flutter 默認(rèn)在 Android 上使用的是 Roboto 字體,而在 iOS 上使用的是 SF 字體,但是其實(shí) Roboto 字體也是分很多類型的,比如你去查閱手機(jī)的 system/fonts 目錄,就會(huì)發(fā)現(xiàn)很多帶有 Roboto 字樣的字體庫(kù)存在。

所以 Roboto 之類的字體庫(kù)是一個(gè)很大的字體集,不同的 font-weight 其實(shí)對(duì)應(yīng)著不同的 ttf ,例如默認(rèn)情況下的 Roboto 是不支持 font-weight 為 600 的配置 :

所以如下圖所示,如果我們?cè)O(shè)置了 w400 - w700 的 weight ,可以很明顯看到中間的 500 和 600 其實(shí)是一樣的粗細(xì),所以在 設(shè)置 weight 或者設(shè)計(jì) UI 時(shí),就需要考慮不同平臺(tái)上的 weight 是否支持想要的效果 。

回歸到 FontFeature 上,那 Roboto 自己默認(rèn)支持多少種 features 呢? 答案是 26 種,它們的編碼如下所示,運(yùn)行后效果也如下圖所示,從日常使用上看,這 26 種 Feature 基本滿足開發(fā)的大部分需求。

而 iOS 上的 SF pro 默認(rèn)支持 39 種 Features , 它們的編碼如下所示,運(yùn)行后效果也如下圖所示,可以看到 SF pro 支持的 Features 更多。

所以可以看到,并不是所有字體支持的 Features 都是一樣的,比如 iOS 上支持 sups 上標(biāo)顯示和 subs 下標(biāo)顯示,但是 Android 上的 Roboto 并不支持,甚至很多第三方字體其實(shí)并不支持 Features 。

有趣的是,在 Flutter Web 有一個(gè)渲染文本時(shí)會(huì)變模糊的問題 #58159 ,這個(gè)問題目前官方還沒有修復(fù),但是你可以通過(guò)給 Text 設(shè)置任意 FontFeatures 來(lái)解決這個(gè)問題。

最后,如果對(duì) FontFeature 還感興趣的朋友,可以通過(guò)一下資料深入了解,如果你還有什么關(guān)于字體上的問題,歡迎留言討論。

基于網(wǎng)友的問題再補(bǔ)充一下拓展知識(shí),畢竟這方面內(nèi)容也不多 。

事實(shí)上在 dart 里就可以看到對(duì)應(yīng) FontWeight 約定俗稱用的是字體集里的什么字體:

所以如果對(duì)于默認(rèn)字體有疑問,可以在你的手機(jī)字體找找是否有對(duì)應(yīng)的字體, 比如雖然我們說(shuō) roboto 沒有 600 ,但是如果是 roboto mono 字體集是有 600 的 fontweight ,甚至還有 600 斜體: 。

另外注意這是 Flutter 而不是原生,具體實(shí)現(xiàn)調(diào)用是在 Engine 的 paragraph_skia.cc 和 paragraph_builder_skia.cc 下對(duì)應(yīng)的 setFontFamilies 相關(guān)邏輯,當(dāng)然默認(rèn)字體庫(kù)指定在 typography.dart 下就看到,例如 'Roboto' 、 '.SF UI Display' 、 '.SF UI Text' 、 '.AppleSystemUIFont' 、 'Segoe UI' :

另外如果你在 Mac 的 Web 上使用 Flutter Web,可以看到指定的是 .AppleSystemUIFont ,而對(duì)于 .AppleSystemUIFont 它其實(shí)不算是一種字體,而是蘋果上字體的一種集合別稱:

[圖片上傳失敗...(image-40f5ce-1648368234737)]

還有,如果你去看 Flutter 默認(rèn)自帶的 cupertino/context_menu_action.dart ,就可以看到一個(gè)有趣的情況:

當(dāng)然,前面我們說(shuō)了那么多,主要是針對(duì)英文的情況下,而在中文下還是有差異的 ,之前的文章也介紹過(guò):

例如,在蘋果上的簡(jiǎn)體中文其實(shí)會(huì)是 PingFang SC 字體,對(duì)應(yīng)還有 PingFang TC 和 PingFang HK 的繁體集,而關(guān)于這個(gè)問題在 Flutter 上之前還出現(xiàn)過(guò)比較有意思的 bug :

當(dāng)然后續(xù)的 #16709 修復(fù)了這個(gè)問題 ,而在以前的文章我也講過(guò),當(dāng)時(shí)我遇到了 “Flutter 在 iOS 系統(tǒng)上,系統(tǒng)語(yǔ)言是韓文時(shí),在和中文一起出現(xiàn)會(huì)導(dǎo)致字體顯示異常" 的問題 :

解決方法也很簡(jiǎn)單,就是給 fontFamilyFallback 配置上 ["PingFang SC" , "Heiti SC"] 就可以了,這是因?yàn)轫n文在蘋果手機(jī)上使用的應(yīng)該是 Apple SD Gothic Neo 這樣的超集字體庫(kù),【廣】這個(gè)字符在這個(gè)字體集上是不存在的,所以就變成了中文的【廣】;

所以可以看到,字體相關(guān)是一個(gè)平時(shí)很少會(huì)深入接觸的東西,但是一旦涉及多語(yǔ)言和繪制,就很容易碰到問題的領(lǐng)域 。

Flutter WebView安卓端輸入框不能長(zhǎng)按粘貼

Flutter項(xiàng)目中遇到在安卓端,輸入框不能長(zhǎng)按粘貼,其它像iOS端、瀏覽器功能都是正常的。查詢各種資料,部分說(shuō)是官方為了避免手勢(shì)沖突禁用了長(zhǎng)按粘貼功能。各種查資料、各種嘗試都開啟不了這一功能,而項(xiàng)目緊急那只能曲線救國(guó)了。

第一個(gè)方案:

因?yàn)閔5復(fù)制文本內(nèi)容到剪貼板這塊是沒問題的,那么h5是否可以直接獲取剪貼板中的內(nèi)容直接填寫到輸入框中,然而...,居然獲取不到,說(shuō)啥子只有在IE瀏覽器中才管用。

第二個(gè)方案(最終方案):

h5獲取不到,但原生端不是可以的嗎。最終流程,h5端輸入框開始編輯,去調(diào)用原生端方法,告知需要獲取剪貼板內(nèi)容,原生端獲取剪貼板內(nèi)容調(diào)用h5端方法同時(shí)傳值給h5端,最后輸入框中不就有值了嗎。

Flutter TextField 文本輸入框的基本屬性及詳解

源碼分析:

分析源碼可得,TextField 是有狀態(tài) StatefulWidget,有豐富的屬性,自定義化較高,實(shí)踐中需要合理利用各種回調(diào);

1、光標(biāo)的相關(guān)屬性;cursorColor 為光標(biāo)顏色,cursorWidth 為光標(biāo)寬度,cursorRadius 為光標(biāo)圓角;其中 Radius 提供了 circle 圓角和 elliptical 非圓角兩種;

2、textAlign 為文字起始位置,可根據(jù)業(yè)務(wù)光標(biāo)居左/居右/居中等;注意只是文字開始方向;textDirection 問文字內(nèi)容方向,從左向右或從右向左;

3、maxLength 為字符長(zhǎng)度,設(shè)置時(shí)默認(rèn)是展示一行,且右下角有編輯長(zhǎng)度與整體長(zhǎng)度對(duì)比;與 maxLengthEnforced 配合,maxLengthEnforced 為 true 時(shí)達(dá)到最大字符長(zhǎng)度后不可編輯;為 false 時(shí)可繼續(xù)編輯展示有差別;

4、設(shè)置 maxLength 之后右下角默認(rèn)有字符計(jì)數(shù)器,設(shè)置 TextField.noMaxLength 即可只展示輸入字符數(shù);

5、maxLines 為允許展現(xiàn)的最大行數(shù),在使用 maxLength 時(shí)內(nèi)容超過(guò)一行不會(huì)自動(dòng)換行,因?yàn)槟J(rèn) maxLines=1,此時(shí)設(shè)置為 null 或固定展示行數(shù)即可自動(dòng)換行;區(qū)別在于 null 會(huì)展示多行,而 maxLines 最多只展示到設(shè)置行數(shù);

6、obscureText 是否隱藏編輯內(nèi)容,常見的密碼格式;

7、enableInteractiveSelection 長(zhǎng)按是否出現(xiàn)【剪切/復(fù)制/粘貼】菜單;不可為空;

8、keyboardAppearance 為鍵盤亮度,包括 Brightness.dark/light 兩種,但僅限于 iOS 設(shè)備;

9、textCapitalization 文字大小寫;理論上 sentences 為每句話第一個(gè)字母大寫;characters為每個(gè)字母大寫;words 為每個(gè)單詞首字母大寫;但該屬性僅限于 text keybord,和尚在本地更換多種方式并未實(shí)現(xiàn),有待研究;

10、keyboardType 為鍵盤類型,和尚理解整體分為數(shù)字鍵盤和字母鍵盤等;根據(jù)設(shè)置的鍵盤類型,鍵盤會(huì)有差別;

a. 數(shù)字鍵盤

--1-- datetime 鍵盤上可隨時(shí)訪問 : 和 /;

--2-- phone 鍵盤上可隨時(shí)訪問 # 和 *;

--3-- number 鍵盤上可隨時(shí)訪問 + - * /

b. 字母鍵盤

--1-- emailAddress 鍵盤上可隨時(shí)訪問 @ 和 .;

--2-- url 鍵盤上可隨時(shí)訪問 / 和 .;

--3-- multiline 適用于多行文本換行;

--4-- text 默認(rèn)字母鍵盤;

11、textInputAction 通常為鍵盤右下角操作類型,類型眾多,建議多多嘗試;

12、autofocus 是否自動(dòng)獲取焦點(diǎn),進(jìn)入頁(yè)面優(yōu)先獲取焦點(diǎn),并彈出鍵盤,若頁(yè)面中有多個(gè) TextField 設(shè)置 autofocus 為 true 則優(yōu)先獲取第一個(gè)焦點(diǎn);

13、focusNode 手動(dòng)獲取焦點(diǎn),可配合鍵盤輸入等減少用戶操作次數(shù),直接獲取下一個(gè) TextField 焦點(diǎn);

14、enabled 設(shè)為 false 之后 TextField 為不可編輯狀態(tài);

15、decoration 為邊框修飾,可以借此來(lái)調(diào)整 TextField 展示效果;可以設(shè)置前置圖標(biāo),后置圖片,邊框?qū)傩裕瑑?nèi)容屬性等,會(huì)在后續(xù)集中嘗試;若要完全刪除裝飾,將 decoration 設(shè)置為空即可;

16、inputFormatters 為格式驗(yàn)證,例如原生 Android 中通常會(huì)限制輸入手機(jī)號(hào)或其他特殊字符,在 Flutter 中也可以借此來(lái)進(jìn)行格式限制,包括正則表達(dá)式;使用時(shí)需要引入 package:flutter/services.dart;

a. LengthLimitingTextInputFormatter 限制最長(zhǎng)字符;

b. WhitelistingTextInputFormatter 僅允許輸入白名單中字符;如 digitsOnly 僅支持?jǐn)?shù)字 [0-9];

c. BlacklistingTextInputFormatter 防止輸入黑名單中字符;如 singleLineFormatter 強(qiáng)制輸入單行;

分析源碼 RegExp("[/]") 可以設(shè)置正則表達(dá)式;

17、onChanged 文本內(nèi)容變更時(shí)回調(diào),可實(shí)時(shí)監(jiān)聽 TextField 輸入內(nèi)容;

18、controller 文本控制器,監(jiān)聽輸入內(nèi)容回調(diào);

19、onTap 點(diǎn)擊 TextField時(shí)回調(diào);

20、onEditingComplete 在提交內(nèi)容時(shí)回調(diào),通常是點(diǎn)擊回車按鍵時(shí)回調(diào);

21、onSubmit 在提交時(shí)回調(diào),不可與 onEditingComplete 同時(shí)使用,區(qū)別在于 onSubmit 是帶返回值的回調(diào);

問題小結(jié):

當(dāng) TextField 設(shè)置 enableInteractiveSelection 屬性后長(zhǎng)按會(huì)出現(xiàn)菜單,默認(rèn)為英文,可通過(guò)設(shè)置 Flutter 國(guó)際化來(lái)處理;

(1)在 pubspec.yaml 中集成 flutter_localizations;

2)在 MaterialApp 中設(shè)置本地化代理和支持的語(yǔ)言類型;

(1)將 maxLength 設(shè)置為 null 僅使用 LengthLimitingTextInputFormatter 限制最長(zhǎng)字符;

(2)設(shè)置 InputDecoration 中 decoration 屬性為空;但是底部有空余,只是隱藏而并非消失;

Flutter手勢(shì)(粘貼即用 flutter 1.22.6)

import 'package:flutter/material.dart';

void main() = runApp(MyApp());

class MyAppextends StatelessWidget {

// This widget is the root of your application.

@override

Widgetbuild(BuildContext context) {

return MaterialApp(

title:'Flutter Demo',

? theme:ThemeData(

primarySwatch: Colors.blue, splashColor: Colors.transparent),

? home:HYHomePage(),

);

}

}

class HYHomePageextends StatelessWidget {

@override

Widgetbuild(BuildContext context) {

return Scaffold(

appBar:AppBar(

title:Text("列表測(cè)試"),

? ),

? body:GestureDemo(),

? // Center(

//? child: Stack(

//? ? alignment: Alignment.center,

//? ? children: [

//? ? ? GestureDetector(

//? ? ? ? onTapDown: (details) {

//? ? ? ? ? print("outer click");

//? ? ? ? },

//? ? ? ? child: Container(

//? ? ? ? ? width: 200,

//? ? ? ? ? height: 200,

//? ? ? ? ? color: Colors.yellow,

//? ? ? ? ? alignment: Alignment.center,

//? ? ? ? ),

//? ? ? ),

//? ? ? IgnorePointer(

//? ? ? ? child: GestureDetector(

//? ? ? ? ? onTapDown: (details) {

//? ? ? ? ? ? print("inner click");

//? ? ? ? ? },

//? ? ? ? ? child: Container(

//? ? ? ? ? ? width: 100,

//? ? ? ? ? ? height: 100,

//? ? ? ? ? ? color: Colors.red,

//? ? ? ? ? ),

//? ? ? ? ),

//? ? ? )

//? ? ],

//? ),

// ),

);

}

}

class GestureDemoextends StatelessWidget {

const GestureDemo({

Key key,

}) :super(key: key);

@override

Widgetbuild(BuildContext context) {

return Center(

child:GestureDetector(

onTapDown: (details) {

print("手指按下");

? ? ? print(details.globalPosition);

? ? ? print(details.localPosition);

? ? },

? ? onTapUp: (details) {

print("手指抬起");

? ? },

? ? onTapCancel: () {

print("手勢(shì)取消");

? ? },

? ? onTap: () {

print("手勢(shì)點(diǎn)擊");

? ? },

? ? onDoubleTap: () {

print("手指雙擊");

? ? },

? ? onLongPress: () {

print("長(zhǎng)按手勢(shì)");

? ? },

? ? onPanUpdate: (value){

print('當(dāng)前我在滑動(dòng)$value');

? ? },

? ? child:Container(

width:200,

? ? ? height:200,

? ? ? color: Colors.orange,

? ? ),

? ),

);

}

}

class ListenerDemoextends StatelessWidget {

const ListenerDemo({

Key key,

}) :super(key: key);

@override

Widgetbuild(BuildContext context) {

return Listener(

onPointerDown: (event) {

print("指針按下:$event");

? ? print(event.position);

? ? print(event.localPosition);

? },

? onPointerMove: (event) {

//? ? ? ? ? ? print("指針移動(dòng):$event");

? },

? onPointerUp: (event) {

//? ? ? ? ? ? print("指針抬起:$event");

? },

? child:Container(

width:200,

? ? height:200,

? ? color: Colors.red,

? ),

);

}

}

當(dāng)前標(biāo)題:php篩選數(shù)組中的數(shù)據(jù)庫(kù),php數(shù)組查詢
文章路徑:http://chinadenli.net/article32/dsgpgpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)外貿(mào)網(wǎng)站建設(shè)軟件開發(fā)微信小程序動(dòng)態(tài)網(wǎng)站外貿(mào)建站

廣告

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

外貿(mào)網(wǎng)站制作