Android Change TextField Cursor Color

2024. 3. 13. 01:00·Dev experience/Android
728x90
반응형

이번에는 material 라이브러리를 사용하면서 겪었던

커서 색상 변경에 관련한 에피소드를 하나 풀어보려 한다.

 

일단 내가 현재 사용하는 버전은 1.9.0 버전이다.

 

Material EditText 사용법

흔히 사용하는 EditText를 material 라이브러리에선 TextInputEditText로 대체하는데

이를 TextInputLayout으로 감싸서 사용한다.

 

Theme 설정하기

나의 경우에는 boxStrokeColor는 xml에서 속성으로 설정이 가능했지만 cursor 색상을 설정할 수가 없었다.

(물론, 코드 상으로도 말이다.)

 

그럼 cursor color는 어디서 바꿔?

 

답만 말하자면 colorControlActivated 속성의 색상을 바꿔주어야 한다.

 

material에는 여러 속성의 색상이 존재하는데 내가 가장 많이 접한 속성으로는 colorControlNormal이 있다.

 

아 근데 이런거 모르겠고 답이나 내놓으라 한다면 style을 두 개 정의하고 그 중 하나를 TextInputLayout에 적용하면 된다.

 

방법은 gist로 확인해보자.

https://gist.github.com/BonusTrack02/8583da9230d8823ba3da7466f147da92

 

Change Material TextInputLayout Cursor Color

Change Material TextInputLayout Cursor Color. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

내가 올린 gist로 설명하자면, 먼저 CustomCursorColor style에서 parent가 ThemeOverlay.Material3.TextInputEditText.OutlinedBox로 설정돼있다.

 

하지만, CustomColoredTextField style에서 parent는

Widget.Material3.TextInputLayout.OutlinedBox로 설정돼있다.

(패키지명이 아예 다르다.)

 

두 스타일이 어떤 관계라 단언할 수는 없지만 상속 관계에 있기도 하다.

 

그래서 해당 스타일의 패키지명이 달라도 해당 속성이 적용되나 보다.

 

참고 : https://github.com/material-components/material-components-android/issues/820

 

Change the cursor color via styling · Issue #820 · material-components/material-components-android

Looks like the TextInputLayout and TextInputEditTextLayout are defaulting the cursor (and cursor bubble) color to primary color. I tested it by switching the global primary color of the app and it ...

github.com

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Dev experience > Android' 카테고리의 다른 글

Android ListAdapter submitList not refreshing  (0) 2024.04.08
Android Selector 사용 시 주의사항  (1) 2024.04.06
Android UrlQuerySanitizer getValue error  (0) 2024.02.06
Android ADB로 크래시 로그 저장하기  (0) 2024.02.03
Android ADB로 스크린샷 저장하기  (0) 2024.02.01
'Dev experience/Android' 카테고리의 다른 글
  • Android ListAdapter submitList not refreshing
  • Android Selector 사용 시 주의사항
  • Android UrlQuerySanitizer getValue error
  • Android ADB로 크래시 로그 저장하기
BonusTrack02.dev
BonusTrack02.dev
공부, 일상
  • BonusTrack02.dev
    BonusTrack02.dev
    BonusTrack02.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (241)
      • Dev experience (88)
        • Android (87)
        • Kotlin (1)
      • Study (64)
        • Kotlin (28)
        • Swift (17)
        • Java (19)
      • 프로그래머스 (68)
      • 주저리주저리 (21)
        • 카페 (5)
        • 음식점 (4)
        • 컨퍼런스 (1)
        • 팝업스토어 (4)
        • 전시회 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    배열
    티스토리챌린지
    안드로이드
    코틀린
    databinding
    CodeLab
    LiveData
    Java
    Observer
    코루틴
    프로그래머스
    ViewModel
    coroutines
    daterangepicker
    PCCE
    MVVM
    자바
    android
    room
    SWIFT
    programmers
    Kotlin
    getNumericValue
    Material
    jetpack
    스위프트
    ios
    오블완
    viewModelScope
    aac
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
BonusTrack02.dev
Android Change TextField Cursor Color
상단으로

티스토리툴바