DialogFragment를 사용하던 중 Positive, Negative Button의 텍스트 사이즈 조절이 필요해졌다.
DialogFragment에서는 onCreateDialog에서 AlertDialog.Builder가 create한 AlertDialog를 리턴하는데
create 이전에 간단한 다이얼로그 생성하듯 setTitle, setMessage, setPositiveButton 등을 호출한다.
나는 여기서 setPositiveButtonTextSize와 같은 메소드가 있을 줄 알았지만 없었다.
(그러니깐 이 글을 쓰고 있겠지만)
아래는 onCreateDialog 메소드를 사용한 gist이다.
https://gist.github.com/BonusTrack02/a22f1ef8c29dae79e6fcaba2398b9ac8
보다시피 여기서 button의 text size를 조절할 수 없었다.
그래서 내가 찾아본 방법으로는 onResume에서 해결하는 것이다.
onResume에서 해결하기
바로 코드 먼저 첨부해보도록 하겠다.
https://gist.github.com/BonusTrack02/ec75848e89ba4b78f09868584904784c
gist에서 보다시피 getDialog를 AlertDialog로 형변환 후, getButton 메소드로 어떤 버튼을 가져올 지 정하고
그 다음 setTextSize를 해주었다.
(getButton으로 호출 가능한 버튼은 POSITIVE, NEGATIVE, NEUTRAL 총 3가지가 있다)
나의 경우에는 텍스트 사이즈를 설정할 때 DP값으로 하기 위해 첫번째 파라미터가 TypedValue.COMPLEX_UNIT_DIP로 설정해주었다.
파라미터가 하나인 setTextSize 메소드는 텍스트 사이즈를 SP로 설정하게 된다.
(내부적으로 파라미터가 두 개인 setTextSize 메소드에 첫번째 파라미터를 아래처럼 설정한다)
마치며
지금 글을 쓰며 굳이 텍스트 사이즈를 onResume에서 했어야 했나?를 돌아보게 되었다.
onCreateDialog의 호출 시점이 관건이었다고 해야할까?
녹색 설명을 보다시피 이 메소드는 onCreate 후, onCreateView 직전에 호출된다.
따라서, 나의 경우에는 onCreateDialog에서 view를 바인딩하고 AlertDialog를 생성해 리턴했기 때문에
onStart나 onCreate가 아닌 onResume에서 텍스트 사이즈를 조절했다.
'Android' 카테고리의 다른 글
Android BottomSheetDialogFragment Scrim 영역 터치 동작 (0) | 2023.09.11 |
---|---|
Android BottomSheetDialogFragment Height 조절하기 (0) | 2023.08.28 |
Android RecyclerView ItemDecoration in Kotlin (0) | 2023.07.21 |
Codelab으로 Room 알아보기 - 2. Create the SleepNight entity(ㄴ) (0) | 2023.07.09 |
Codelab으로 Room 알아보기 - 2. Create the SleepNight entity(ㄱ) (0) | 2023.07.08 |