From 519d0cd02a03dbf7d8183a837caff54f8af014e9 Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 13 Feb 2025 19:08:18 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20-=20=EC=84=A0=ED=83=9D=EB=90=9C=20=ED=83=AD?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=ED=83=AD=EC=9D=B4=20=EC=8A=A4=ED=81=AC?= =?UTF-8?q?=EB=A1=A4=20=EB=90=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/v2/AudioContentMainActivity.kt | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/AudioContentMainActivity.kt b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/AudioContentMainActivity.kt index 2d7885d..0c2153f 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/AudioContentMainActivity.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/audio_content/main/v2/AudioContentMainActivity.kt @@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.audio_content.main.v2 import android.content.Intent import android.graphics.Typeface +import android.view.ViewGroup import android.widget.TextView import androidx.core.content.res.ResourcesCompat import com.google.android.material.tabs.TabLayout @@ -17,6 +18,7 @@ import kr.co.vividnext.sodalive.base.BaseActivity import kr.co.vividnext.sodalive.common.Constants import kr.co.vividnext.sodalive.databinding.ActivityAudioContentMainBinding import kr.co.vividnext.sodalive.mypage.alarm.AlarmListActivity +import kotlin.math.min enum class AudioContentMainTab { HOME, SERIES, CONTENT, ALARM, ASMR, REPLAY, FREE; @@ -103,10 +105,29 @@ class AudioContentMainActivity : BaseActivity( } }) - tabs.getTabAt(startTabPosition.ordinal)?.select() + tabs.getTabAt(startTabPosition.ordinal)?.let { + it.select() + scrollToTab(tabs, startTabPosition.ordinal) + } replaceFragment(selectedTab = startTabPosition) } + private fun scrollToTab(tabLayout: TabLayout, position: Int) { + tabLayout.post { + val layout = tabLayout.getChildAt(0) as ViewGroup + val tabView = layout.getChildAt(position) + + // 화면 전체 너비 + val parentWidth = tabLayout.width + // 선택한 탭의 중심 좌표 + val tabCenterX = tabView.left + tabView.width / 2 + // 스크롤 할 위치 = 탭의 중심을 화면 중앙에 배치 + val scrollToX = tabCenterX - parentWidth / 2 + + tabLayout.scrollTo(min(tabView.left, scrollToX), 0) + } + } + private fun replaceFragment(selectedTab: AudioContentMainTab) { val startFragment = when (selectedTab) { AudioContentMainTab.CONTENT -> AudioContentMainTabContentFragment()