Flutter RichText 富文字標籤樣式 區域性文字點選事件
阿新 • • 發佈:2020-12-19
技術標籤: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();
}