1. 程式人生 > 其它 >Flutter RichText 富文字標籤樣式 區域性文字點選事件

Flutter RichText 富文字標籤樣式 區域性文字點選事件

技術標籤:Flutter開的發點滴積累flutterflutter教程Android開發iOS開發前端開發

在碼農的世界裡,優美的應用體驗,來源於程式設計師對細節的處理以及自我要求的境界,年輕人也是忙忙碌碌的碼農中一員,每天、每週,都會留下一些腳印,就是這些創作的內容,有一種執著,就是不知為什麼,如果你迷茫,不妨來瞅瞅碼農的軌跡。


  //協議說明文案
  String userPrivateProtocol =
      "我們一向尊重並會嚴格保護使用者在使用本產品時的合法權益(包括使用者隱私、使用者資料等)不受到任何侵犯。本協議(包括本文最後部分的隱私政策)是使用者(包括通過各種合法途徑獲取到本產品的自然人、法人或其他組織機構,以下簡稱“使用者”或“您”)與我們之間針對本產品相關事項最終的、完整的且排他的協議,並取代、合併之前的當事人之間關於上述事項的討論和協議。本協議將對使用者使用本產品的行為產生法律約束力,您已承諾和保證有權利和能力訂立本協議。使用者開始使用本產品將視為已經接受本協議,請認真閱讀並理解本協議中各種條款,包括免除和限制我們的免責條款和對使用者的權利限制(未成年人審閱時應由法定監護人陪同),如果您不能接受本協議中的全部條款,請勿開始使用本產品"
;

在這裡插入圖片描述

  ///構建富文字
  RichText buildRichText() {
    return RichText(
      //文字居中
      textAlign: TextAlign.center,
      //文字區域
      text: TextSpan(
        text: "請您本產品之前,請務必仔細閱讀並理解",
        style: TextStyle(color: Colors.grey),
        children: [
          TextSpan(
            text: "《使用者協議》"
, style: TextStyle(color: Colors.blue), //點選事件 recognizer: _registProtocolRecognizer ..onTap = () { //開啟使用者協議 openUserProtocol(); }, ), TextSpan( text: "與", style:
TextStyle(color: Colors.grey), ), TextSpan( text: "《隱私協議》", style: TextStyle(color: Colors.blue), //點選事件 recognizer: _privacyProtocolRecognizer ..onTap = () { //開啟隱私協議 openPrivateProtocol(); }, ), //後續顯示的文字內容 TextSpan(text: userPrivateProtocol) ], ), ); }

區域性文字點選事件

  TapGestureRecognizer _registProtocolRecognizer;
  TapGestureRecognizer _privacyProtocolRecognizer;

  ///生命週期函式 頁面建立時執行一次
  @override
  void initState() {
    super.initState();
    //註冊協議的手勢
    _registProtocolRecognizer = TapGestureRecognizer();
    //隱私協議的手勢
    _privacyProtocolRecognizer = TapGestureRecognizer();
  }

  ///生命週期函式 頁面銷燬時執行一次
  @override
  void dispose() {
    super.dispose();

    ///銷燬
    _registProtocolRecognizer.dispose();
    _privacyProtocolRecognizer.dispose();
  }