[Android] AutocompleteSupportFragment(Google Map Search Box) 스타일 적용

SEONDY·2024년 2월 28일
1

Android

목록 보기
2/2
post-thumbnail

1. 발생한 문제

구글맵 API를 활용해 장소를 검색할 수 있는 검색 바의 textColor가 적용되지 않는 문제가 생겼다. dark mode가 아닐 때에는 보기 불편하지 않았는데, dark mode로 보니 글자의 색상이 눈에 잘 보이지 않아 불편했다.
해당 문제를 해결하기 위해, Number Picker의 textColor 문제를 해결했던 방법으로 theme에 style을 추가해서 AutocompleteSupportFragment에 적용시켰으나, 글자 색상은 바뀌지 않았다...🥺

2. 참고한 stack overflow

Style Text Color and Hint Color For AutocompleteSupportFragment In Android

해결 방법은 생각보다 매우 간단했다.

  1. 구글 서치 박스를 사용하는 Fragment의 kotlin 파일에서 설정해준다.
    setHintTextColor로 내가 value의 colors에 지정해둔 색상을 가져와 힌트 색상을 설정해줬고, setTextColor로 글자 색상을 설정해줬다.
// 구글 서치 박스 ui 변경
val autocompleteFragment =
    childFragmentManager.findFragmentById(R.id.meetingPlaceAutocompleteFragment) as AutocompleteSupportFragment
	autocompleteFragment.view?.setBackgroundResource(R.drawable.input_stroke_none)
	autocompleteFragment.view?.findViewById<EditText>(com.google.android.libraries.places.R.id.places_autocomplete_search_input)
    ?.apply {
        hint = "주소를 검색해 주세요."
        setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f)
        setHintTextColor(ContextCompat.getColor(requireContext(), R.color.hint_gray)) // 힌트 텍스트 색상 설정
        setTextColor(ContextCompat.getColor(requireContext(), R.color.hint_gray)) // 텍스트 색상 설정
    }
  1. 해결 됐는지 확인해보기!
  • 다크 모드에서도 불편함이 없도록 변경 완료되었다!!!
    해당 Fragment의 kotlin 파일에서 이미 몇 가지의 스타일링을 해줬는데, 여기에서 텍스트 색상을 바꿔주는 것 까지는 생각하지 못했던 것 같다.

0개의 댓글