parent
363d611e0f
commit
519d0cd02a
|
@ -2,6 +2,7 @@ package kr.co.vividnext.sodalive.audio_content.main.v2
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.Typeface
|
import android.graphics.Typeface
|
||||||
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.core.content.res.ResourcesCompat
|
import androidx.core.content.res.ResourcesCompat
|
||||||
import com.google.android.material.tabs.TabLayout
|
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.common.Constants
|
||||||
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentMainBinding
|
import kr.co.vividnext.sodalive.databinding.ActivityAudioContentMainBinding
|
||||||
import kr.co.vividnext.sodalive.mypage.alarm.AlarmListActivity
|
import kr.co.vividnext.sodalive.mypage.alarm.AlarmListActivity
|
||||||
|
import kotlin.math.min
|
||||||
|
|
||||||
enum class AudioContentMainTab {
|
enum class AudioContentMainTab {
|
||||||
HOME, SERIES, CONTENT, ALARM, ASMR, REPLAY, FREE;
|
HOME, SERIES, CONTENT, ALARM, ASMR, REPLAY, FREE;
|
||||||
|
@ -103,10 +105,29 @@ class AudioContentMainActivity : BaseActivity<ActivityAudioContentMainBinding>(
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
tabs.getTabAt(startTabPosition.ordinal)?.select()
|
tabs.getTabAt(startTabPosition.ordinal)?.let {
|
||||||
|
it.select()
|
||||||
|
scrollToTab(tabs, startTabPosition.ordinal)
|
||||||
|
}
|
||||||
replaceFragment(selectedTab = startTabPosition)
|
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) {
|
private fun replaceFragment(selectedTab: AudioContentMainTab) {
|
||||||
val startFragment = when (selectedTab) {
|
val startFragment = when (selectedTab) {
|
||||||
AudioContentMainTab.CONTENT -> AudioContentMainTabContentFragment()
|
AudioContentMainTab.CONTENT -> AudioContentMainTabContentFragment()
|
||||||
|
|
Loading…
Reference in New Issue