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

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

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

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

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

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

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

要重載該方法,請子類化 TextEditingController 并重載該方法:G7528資訊網——每日最新資訊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);  }}

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

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

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

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

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

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

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

然后我們解析文本并得到語法樹的簡單形式:G7528資訊網——每日最新資訊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 :G7528資訊網——每日最新資訊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,    );  }

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

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

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

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

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

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • K60至尊版狂暴引擎2.0加持:超177萬跑分斬獲性能第一

    Redmi的后性能時代戰略發布會今天下午如期舉辦,在本次發布會上,Redmi公布了多項關于和聯發科的深度合作,以及新機K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • Rust中的高吞吐量流處理

    作者 | Noz編譯 | 王瑞平本篇文章主要介紹了Rust中流處理的概念、方法和優化。作者不僅介紹了流處理的基本概念以及Rust中常用的流處理庫,還使用這些庫實現了一個流處理程序
  • 把LangChain跑起來的三個方法

    使用LangChain開發LLM應用時,需要機器進行GLM部署,好多同學第一步就被勸退了,那么如何繞過這個步驟先學習LLM模型的應用,對Langchain進行快速上手?本片講解3個把LangChain跑起來
  • 攜眾多高端產品亮相ChinaJoy,小米帶來一場科技與人文的視聽盛宴

    7月28日,全球數字娛樂領域最具知名度與影響力的年度盛會中國國際數碼互動娛樂展覽會(簡稱ChinaJoy)在上海新國際博覽中心盛大開幕。作為全球領先的科
  • 華為HarmonyOS 4.0將于8月4日發布 或搭載AI大模型技術

    華為宣布HarmonyOS4.0將于8月4日正式發布。此前,華為已經針對開發者公布了HarmonyOS4.0,以便于開發者提前進行適配,也因此被曝光出了一些新系統的特性
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • 蘋果公司要求三星和LG Display生產「無邊框」OLED iPhone顯示屏

    據 The Elec 報道,蘋果已要求其供應商為未來的 iPhone 型號開發「無邊框」OLED 顯示面板。蘋果顯然已要求三星和 LG Display 開發新的 OLED 顯示面
  • 2299元起!iQOO Pad明晚首銷:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點
Top