AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

花里胡哨,如何在 Flutter 中制作多種顏色的 TextField

來源: 責編: 時間:2024-04-19 17:28:41 205觀看
導讀TextField widget 本身并不施加任何樣式。相反,它會要求 TextEditingController 生成一個樣式化的 TextSpan 對象,即一段帶有樣式的文本。TextField 將其樣式傳遞給 TextEditingController ,默認實現只是將其放入 TextSp

TextField widget 本身并不施加任何樣式。相反,它會要求 TextEditingController 生成一個樣式化的 TextSpan 對象,即一段帶有樣式的文本。VsS28資訊網——每日最新資訊28at.com

圖片VsS28資訊網——每日最新資訊28at.com

TextField 將其樣式傳遞給 TextEditingController ,默認實現只是將其放入 TextSpan 對象中,這就是通常應用顏色的方式。VsS28資訊網——每日最新資訊28at.com

要重載該方法,請子類化 TextEditingController 并重載該方法:VsS28資訊網——每日最新資訊28at.com

class GradientTextEditingController extends TextEditingController {  @override  TextSpan buildTextSpan({    required BuildContext context,    TextStyle? style,    bool? withComposing,  }) {    style ??= const TextStyle();    final leftStyle = style.copyWith(color: Colors.red);    final rightStyle = style.copyWith(color: Colors.indigo);    final children = <TextSpan>[];    for (final char in text.characters) {      children.add(        TextSpan(          text: char,          style: TextStyle.lerp(            leftStyle,            rightStyle,            children.length / text.length,          ),        ),      );    }    return TextSpan(style: style, children: children);  }}

圖片圖片VsS28資訊網——每日最新資訊28at.com

請參閱此處的完整代碼。VsS28資訊網——每日最新資訊28at.com

https://gist.github.com/alexeyinkin/ee65ed81913c8962c2d19e28e11cb262VsS28資訊網——每日最新資訊28at.com

你可以進行更復雜的處理。例如,我們通過解析語法樹并對關鍵字、字面量、注釋等進行不同的著色,來制作代碼高亮:VsS28資訊網——每日最新資訊28at.com

圖片圖片VsS28資訊網——每日最新資訊28at.com

我們首先導入為另一個項目制作的 highlighting 和 flutter_highlighting 包:VsS28資訊網——每日最新資訊28at.com

import 'package:flutter_highlighting/themes/vs.dart';import 'package:highlighting/highlighting.dart';import 'package:highlighting/languages/java.dart';

然后我們解析文本并得到語法樹的簡單形式:VsS28資訊網——每日最新資訊28at.com

class SyntaxTextEditingController extends TextEditingController {  @override  TextSpan buildTextSpan({    required BuildContext context,    TextStyle? style,    bool? withComposing,  }) {    final highlighted = highlight.parse(text, languageId: java.id);    return TextSpan(      style: style,      children: _buildList(        nodes: highlighted.nodes,        styles: vsTheme, // Built-in theme from flutter_highlighting        ancestorStyle: style,      ),    );  }  // ...

接下來是遍歷語法樹并為每個節點返回 TextSpan :VsS28資訊網——每日最新資訊28at.com

List<TextSpan>? _buildList({    required List<Node>? nodes,    required Map<String, TextStyle> styles,    TextStyle? ancestorStyle,  }) {    return nodes        ?.map(          (node) => _buildNode(            node: node,            styles: styles,            ancestorStyle: ancestorStyle,          ),        )        .toList(growable: false);  }  TextSpan _buildNode({    required Node node,    required Map<String, TextStyle> styles,    TextStyle? ancestorStyle,  }) {    final style = styles[node.className] ?? ancestorStyle;    return TextSpan(      text: node.value,      children: _buildList(        nodes: node.children,        styles: styles,        ancestorStyle: style,      ),      style: style,    );  }

請參閱此處的完整代碼。VsS28資訊網——每日最新資訊28at.com

https://gist.github.com/alexeyinkin/bff79a057cbf04ecd5166243d06f1d44VsS28資訊網——每日最新資訊28at.com

因此,TextEditingController 類是實現各種自定義功能的大門。我們在這條路上走得更遠,并制作了一個可以做到這一點的高級代碼編輯器:VsS28資訊網——每日最新資訊28at.com

圖片圖片VsS28資訊網——每日最新資訊28at.com

如果您有興趣,請查看這里。VsS28資訊網——每日最新資訊28at.com

https://medium.com/akvelon/flutter-code-editor-19e0090a62ccVsS28資訊網——每日最新資訊28at.com

原文:https://medium.com/akvelon/how-to-make-textfield-in-multiple-colors-in-flutter-c317ae0efafeVsS28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-84196-0.html花里胡哨,如何在 Flutter 中制作多種顏色的 TextField

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 20款 Visual Studio 實用插件推薦

下一篇: Python編程必備:return和print的實際用途

標簽:
  • 熱門焦點
  • K60 Pro官方停產 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經透露了,Redmi K60 Pro已經停產且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產之后
  • 一加首款折疊屏!一加Open渲染圖出爐:罕見單手可握小尺寸

    8月5日消息,此前就有爆料稱,一加首款折疊屏手機將會在第三季度上市,如今隨著時間臨近,新機的各種消息也開始浮出水面。據悉,這款新機將會被命名為&ldquo;On
  • Automa-通過連接塊來自動化你的瀏覽器

    1、前言通過瀏覽器插件可實現自動化腳本的錄制與編寫,具有代表性的工具就是:Selenium IDE、Katalon Recorder,對于簡單的業務來說可快速實現自動化的上手工作。Selenium IDEKat
  • 拼多多APP上線本地生活入口,群雄逐鹿萬億市場

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨家獲悉,拼多多在其APP內上線了&ldquo;本地生活&rdquo;入口,位置較深,位于首頁的&ldquo;充值中心&rdquo;內,目前主要售賣美食相關的
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態LT(ID:LingTai_LT)如何成為一家偉大企業?答案一定是對&ldquo;勢&rdquo;的把握,這其中最關鍵的當屬對企業戰略的制定,且能夠站在未來看現在,即使這其中的
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 8月見!小米MIX Fold 3獲得3C認證:支持67W快充

    這段時間以來,包括三星、一加、榮耀等等有不少品牌旗下的最新折疊屏旗艦都得到了不少爆料,而小米新一代折疊屏旗艦——小米MIX Fold 3此前也屢屢被傳
  • iQOO 11S屏幕細節公布:首發三星2K E6全感屏 安卓最好的直屏手機

    日前iQOO手機官方宣布,新一代電競旗艦iQOO 11S將會在7月4日19:00正式與大家見面。隨著發布時間的日益臨近,官方關于該機的預熱也更加密集,截至目前已
  • 最薄的14英寸游戲筆記本電腦 Alienware X14已可以購買

    2022年1月份在國際消費電子展(CES2022)上首次亮相的Alienware新品——Alienware X14現在已經可以購買了,這款筆記本電腦被譽為世界上最薄的 14 英寸游戲筆
Top