From 88d13ce77a2b2250fe069b73cd57aa84a332d7bd Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 11 Sep 2025 20:04:13 +0900 Subject: [PATCH] =?UTF-8?q?fix(character):=20=EC=9D=B8=EA=B8=B0=20?= =?UTF-8?q?=EC=BA=90=EB=A6=AD=ED=84=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - TextView 숫자 하단 여백(descent) 제거 --- .../chat/character/CharacterAdapter.kt | 21 ++++++++++-- app/src/main/res/layout/item_character.xml | 32 ++++++++----------- 2 files changed, 31 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterAdapter.kt b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterAdapter.kt index c62b6365..194898d6 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterAdapter.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/chat/character/CharacterAdapter.kt @@ -4,6 +4,7 @@ import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.ViewTreeObserver import androidx.recyclerview.widget.RecyclerView import coil.load import coil.transform.RoundedCornersTransformation @@ -27,13 +28,27 @@ class CharacterAdapter( // 순위 표시 여부 결정 if (showRanking) { - binding.llRanking.visibility = View.VISIBLE + binding.tvRanking.visibility = View.VISIBLE binding.tvRanking.text = (index + 1).toString() + binding.tvRanking.apply { + includeFontPadding = false + maxLines = 1 + // 뷰가 측정된 뒤 메트릭이 확정되므로, preDraw 시점에 보정 + viewTreeObserver.addOnPreDrawListener( + object : ViewTreeObserver.OnPreDrawListener { + override fun onPreDraw(): Boolean { + viewTreeObserver.removeOnPreDrawListener(this) + val fm = paint.fontMetrics + // 글리프 하단을 라인 박스 하단에 맞추기 위한 시프트 + translationY = fm.descent + return true + } + }) + } } else { - binding.llRanking.visibility = View.GONE + binding.tvRanking.visibility = View.GONE } - binding.ivCharacter.clipToOutline = true binding.ivCharacter.load(character.imageUrl) { crossfade(true) placeholder(R.drawable.ic_logo_service_center) diff --git a/app/src/main/res/layout/item_character.xml b/app/src/main/res/layout/item_character.xml index b596d8ff..2e638148 100644 --- a/app/src/main/res/layout/item_character.xml +++ b/app/src/main/res/layout/item_character.xml @@ -1,39 +1,33 @@ + android:layout_height="168dp" + android:background="@color/black"> - - - - - + android:fontFamily="@font/pretendard_bold" + android:includeFontPadding="false" + android:maxLines="1" + android:textColor="@color/white" + android:textSize="72sp" + tools:text="1" />