源碼分析:
為白沙黎族等地區用戶提供了全套網頁設計制作服務,及白沙黎族網站建設行業解決方案。主營業務為做網站、成都網站設計、白沙黎族網站設計,以傳統方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業、用心的態度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
分析源碼可得,TextField 是有狀態 StatefulWidget,有豐富的屬性,自定義化較高,實踐中需要合理利用各種回調;
1、光標的相關屬性;cursorColor 為光標顏色,cursorWidth 為光標寬度,cursorRadius 為光標圓角;其中 Radius 提供了 circle 圓角和 elliptical 非圓角兩種;
2、textAlign 為文字起始位置,可根據業務光標居左/居右/居中等;注意只是文字開始方向;textDirection 問文字內容方向,從左向右或從右向左;
3、maxLength 為字符長度,設置時默認是展示一行,且右下角有編輯長度與整體長度對比;與 maxLengthEnforced 配合,maxLengthEnforced 為 true 時達到最大字符長度后不可編輯;為 false 時可繼續編輯展示有差別;
4、設置 maxLength 之后右下角默認有字符計數器,設置 TextField.noMaxLength 即可只展示輸入字符數;
5、maxLines 為允許展現的最大行數,在使用 maxLength 時內容超過一行不會自動換行,因為默認 maxLines=1,此時設置為 null 或固定展示行數即可自動換行;區別在于 null 會展示多行,而 maxLines 最多只展示到設置行數;
6、obscureText 是否隱藏編輯內容,常見的密碼格式;
7、enableInteractiveSelection 長按是否出現【剪切/復制/粘貼】菜單;不可為空;
8、keyboardAppearance 為鍵盤亮度,包括 Brightness.dark/light 兩種,但僅限于 iOS 設備;
9、textCapitalization 文字大小寫;理論上 sentences 為每句話第一個字母大寫;characters為每個字母大寫;words 為每個單詞首字母大寫;但該屬性僅限于 text keybord,和尚在本地更換多種方式并未實現,有待研究;
10、keyboardType 為鍵盤類型,和尚理解整體分為數字鍵盤和字母鍵盤等;根據設置的鍵盤類型,鍵盤會有差別;
a. 數字鍵盤
--1-- datetime 鍵盤上可隨時訪問 : 和 /;
--2-- phone 鍵盤上可隨時訪問 # 和 *;
--3-- number 鍵盤上可隨時訪問 + - * /
b. 字母鍵盤
--1-- emailAddress 鍵盤上可隨時訪問 @ 和 .;
--2-- url 鍵盤上可隨時訪問 / 和 .;
--3-- multiline 適用于多行文本換行;
--4-- text 默認字母鍵盤;
11、textInputAction 通常為鍵盤右下角操作類型,類型眾多,建議多多嘗試;
12、autofocus 是否自動獲取焦點,進入頁面優先獲取焦點,并彈出鍵盤,若頁面中有多個 TextField 設置 autofocus 為 true 則優先獲取第一個焦點;
13、focusNode 手動獲取焦點,可配合鍵盤輸入等減少用戶操作次數,直接獲取下一個 TextField 焦點;
14、enabled 設為 false 之后 TextField 為不可編輯狀態;
15、decoration 為邊框修飾,可以借此來調整 TextField 展示效果;可以設置前置圖標,后置圖片,邊框屬性,內容屬性等,會在后續集中嘗試;若要完全刪除裝飾,將 decoration 設置為空即可;
16、inputFormatters 為格式驗證,例如原生 Android 中通常會限制輸入手機號或其他特殊字符,在 Flutter 中也可以借此來進行格式限制,包括正則表達式;使用時需要引入 package:flutter/services.dart;
a. LengthLimitingTextInputFormatter 限制最長字符;
b. WhitelistingTextInputFormatter 僅允許輸入白名單中字符;如 digitsOnly 僅支持數字 [0-9];
c. BlacklistingTextInputFormatter 防止輸入黑名單中字符;如 singleLineFormatter 強制輸入單行;
分析源碼 RegExp("[/]") 可以設置正則表達式;
17、onChanged 文本內容變更時回調,可實時監聽 TextField 輸入內容;
18、controller 文本控制器,監聽輸入內容回調;
19、onTap 點擊 TextField時回調;
20、onEditingComplete 在提交內容時回調,通常是點擊回車按鍵時回調;
21、onSubmit 在提交時回調,不可與 onEditingComplete 同時使用,區別在于 onSubmit 是帶返回值的回調;
問題小結:
當 TextField 設置 enableInteractiveSelection 屬性后長按會出現菜單,默認為英文,可通過設置 Flutter 國際化來處理;
(1)在 pubspec.yaml 中集成 flutter_localizations;
2)在 MaterialApp 中設置本地化代理和支持的語言類型;
(1)將 maxLength 設置為 null 僅使用 LengthLimitingTextInputFormatter 限制最長字符;
(2)設置 InputDecoration 中 decoration 屬性為空;但是底部有空余,只是隱藏而并非消失;
本次主要是記錄Fultter Theme主題的設備與AppBar中的一些屬性的使用及說明。目前項目開發有了四個界面。前期主題沒太注意,今天看來要好好總結一下近期所學。
首先,Android主題沉浸式設置,Flutter篇:
根據字面意思就能看出來是對狀態懶得設置,其中用到了 dart:io 與 flutter/services.dart 這兩個重點Mark一下,有時間深入探究一下用法跟能力。回歸正題。
主題數據,其中最常用的是 primarySwatch 、 primaryColor 、 accentColor 。
primarySwatch:UI右下角的FloatingActionButton的顏色就是默認取值MaterialColor,
默認是藍色的,如果修改成primarySwatch,就會變成這個顏色值。只支持MaterialColor。
primaryColor:頂部導航欄和狀態欄的顏色修改,需要用到這個屬性,類型 Color。
accentColor:前景色(文本、按鈕、覆蓋邊緣效果等)。
看一下項目中的使用
其中 brightness 主題設置較為關鍵,它是設置狀態欄圖標與字體顏色的。
brightness: Brightness.dark 狀態欄圖標與字體顏色為白色。
brightness: Brightness.light 狀態欄圖標與字體顏色為黑色。
iconTheme :設置appbar icon的顏色,appbar中icon的顏色會根據primaryColor的改變來確定自身的顏色,這里可以在iconTheme中指定icon的顏色。
默認不做修改前:
這些詩歌很簡單又美好:
夏天的飛鳥,飛到我的窗前唱歌,又飛去了。
秋天的黃葉,它們沒有什么可唱,只嘆息一聲,飛落在那里。
Stray
birds
of
summer
come
to
my
window
to
sing
and
fly
away.
And
yellow
leaves
of
autumn,
which
have
no
songs,
flutter
and
fall
there
with
a
sign.
[泰戈爾飛鳥集]
“海水呀,你說的是什么?”
“是永恒的疑問。”
“天空呀,你回答的話是什么?”
“是永恒的沉默。”
What
language
is
thine,
O
sea?
The
language
of
eternal
question.
What
language
is
thy
answer,
O
sky?
The
language
of
eternal
silence.
[泰戈爾]
在這個黃昏的朦朧里,好些東西看來都仿佛是幻象一般--尖塔
的底層在黑暗里消失了,樹頂象是墨水的模糊的斑點似的。我將等待著黎明,而
當我醒來的時候,就會看到在光明里的您的城市。
Things
look
phantastic
in
this
dimness
of
the
dusk---the
spires
whose
bases
are
lost
in
the
dark
and
tree
tops
like
blots
of
ink.
I
shall
wait
for
the
morning
and
wake
up
to
see
thy
city
in
the
light.
分享名稱:關于flutterdark的信息
地址分享:http://vcdvsql.cn/article34/dsdjope.html
成都網站建設公司_創新互聯,為您提供虛擬主機、網站建設、動態網站、手機網站建設、外貿網站建設、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯