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()