[플러터] onClick 속성이 가능한 Text 위젯

2020. 11. 21. 01:13·Flutter/Flutter Widget Basic

Text 위젯에서 Click에 따른 이벤트가 필요하다거나,

하나의 Text 라인에서 각 부분들이 다른 TextStyle을 가져야 할때,

RichText라는 위젯을 사용한다.

 

구조가 조금 특이한 위젯이다.

RichText라는 최상단 위젯에 text 속성으로 TextSpan 위젯을 준다.

TextSpan 위젯은 children을 받을 수 있고, 여기에 TextSpan을 여러개 생성해서 넣어준다.

               RichText(
                      text: TextSpan(children: [
                        TextSpan(
                            text: '안녕하세요.',
                            style: TextStyle(color: Colors.black)),
                        TextSpan(
                            text: '저는 ',
                            style: TextStyle(fontWeight: FontWeight.w700)),
                        TextSpan(
                            text: '개발자 뮬리입니다.',
                            //텍스트를 클릭시 이벤트를 발생시키기 위함
                            recognizer: TapGestureRecognizer()
                            //클래스 생성과 동시에 '선언부..함수명'을 입력하면 클래스 변수 없이 함수를 바로 호출 가능함
                              ..onTapDown = (details) {
                              //onTapDown에서 반환되는 값으로 터치한 Screen 위치를 알 수 있다.
                                print(details.globalPosition);
                              },
                            style: TextStyle(color: Colors.red)),
                      ]),
                    ),

 

TextSpan의 recognizer 속성에 위의 예제와 같이 TabGestureRecognizer()를 생성해주면

Text 클릭시 이벤트 발생을 구현할 수 있다.

저작자표시 비영리 변경금지 (새창열림)

'Flutter > Flutter Widget Basic' 카테고리의 다른 글

[플러터] 위젯에 클릭 이벤트 부여하기 (Inkwell, GestureDetector)  (1) 2021.07.31
[플러터] Toast 메시지 (Snack bar) 생성하기  (0) 2021.01.07
[플러터] bottom Navigation을 구현하는 3가지 방법  (0) 2020.09.28
[플러터] Inkwell의 이펙트 제거  (0) 2020.09.24
[Flutter] Appbar에서 알아야할 속성  (0) 2020.08.22
'Flutter/Flutter Widget Basic' 카테고리의 다른 글
  • [플러터] 위젯에 클릭 이벤트 부여하기 (Inkwell, GestureDetector)
  • [플러터] Toast 메시지 (Snack bar) 생성하기
  • [플러터] bottom Navigation을 구현하는 3가지 방법
  • [플러터] Inkwell의 이펙트 제거
박유상의 개발블로그
박유상의 개발블로그
개발블로그
  • 박유상의 개발블로그
    박유상의 개발블로그
    박유상의 개발블로그
  • 전체
    오늘
    어제
    • 전체 (134)
      • Who am I (10)
        • Portfolio (4)
        • Reminiscence (5)
        • Oversea (1)
        • SiliconValley (0)
      • React (36)
        • React Basic (15)
        • React Tech (5)
        • JavaScript (7)
        • TypeScript (3)
        • CSS&HTML (3)
        • Firebase (3)
      • NodeJS (1)
        • NodeJS Basic (1)
      • Flutter (55)
        • Flutter Widget Design (5)
        • Flutter Widget Basic (8)
        • Flutter Tech (18)
        • Flutter Issue (7)
        • Flutter Web (6)
        • About Flutter (2)
        • Firebase (1)
        • Dev Env (1)
        • Dart (7)
      • Programming (31)
        • Web (1)
        • General (0)
        • Algorithm (25)
        • Python (1)
        • VS Code (2)
      • Django (0)
  • 블로그 메뉴

    • Who I AM
    • React
    • NodeJS
    • Flutter
    • Programming
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Redux
    DART
    포트폴리오
    탐욕법
    플러터
    CSS
    flutter web
    HTML
    TypeScript
    DP
    Lingory
    JavaScript
    useTranslation
    Firebase
    useState
    웹
    Flutter
    알고리즘
    github
    프로그래머스
    Python
    자바스크립트
    파이썬
    링고리
    map
    react
    JSON
    useRef
    플러터 웹
    리액트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
박유상의 개발블로그
[플러터] onClick 속성이 가능한 Text 위젯
상단으로

티스토리툴바