feat(ui): 채팅 탭 내 TabLayout 캐릭터, 톡 탭 추가
This commit is contained in:
@@ -1,18 +1,96 @@
|
||||
package kr.co.vividnext.sodalive.chat
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import kr.co.vividnext.sodalive.R
|
||||
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||
import kr.co.vividnext.sodalive.chat.character.CharacterTabFragment
|
||||
import kr.co.vividnext.sodalive.chat.talk.TalkTabFragment
|
||||
import kr.co.vividnext.sodalive.common.SharedPreferenceManager
|
||||
import kr.co.vividnext.sodalive.databinding.FragmentChatBinding
|
||||
import kr.co.vividnext.sodalive.mypage.can.charge.CanChargeActivity
|
||||
import kr.co.vividnext.sodalive.search.SearchActivity
|
||||
|
||||
class ChatFragment : BaseFragment<FragmentChatBinding>(FragmentChatBinding::inflate) {
|
||||
|
||||
private var currentTab = 0
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
initView()
|
||||
setupToolbar()
|
||||
setupTabs()
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
// 채팅 화면 초기화 로직
|
||||
private fun setupToolbar() {
|
||||
if (SharedPreferenceManager.token.isNotBlank()) {
|
||||
binding.llShortIcon.visibility = View.VISIBLE
|
||||
|
||||
binding.ivSearch.setOnClickListener {
|
||||
startActivity(
|
||||
Intent(
|
||||
requireContext(),
|
||||
SearchActivity::class.java
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
binding.ivCharge.setOnClickListener {
|
||||
startActivity(
|
||||
Intent(
|
||||
requireContext(),
|
||||
CanChargeActivity::class.java
|
||||
)
|
||||
)
|
||||
}
|
||||
} else {
|
||||
binding.llShortIcon.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupTabs() {
|
||||
// 탭 추가
|
||||
binding.tabLayout.addTab(binding.tabLayout.newTab().setText("캐릭터"))
|
||||
binding.tabLayout.addTab(binding.tabLayout.newTab().setText("톡"))
|
||||
|
||||
// 탭 선택 리스너 설정
|
||||
binding.tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
|
||||
override fun onTabSelected(tab: TabLayout.Tab) {
|
||||
currentTab = tab.position
|
||||
showTabContent(currentTab)
|
||||
}
|
||||
|
||||
override fun onTabUnselected(tab: TabLayout.Tab) {
|
||||
// 필요한 경우 구현
|
||||
}
|
||||
|
||||
override fun onTabReselected(tab: TabLayout.Tab) {
|
||||
// 필요한 경우 구현
|
||||
}
|
||||
})
|
||||
|
||||
// 초기 탭 선택
|
||||
showTabContent(currentTab)
|
||||
}
|
||||
|
||||
private fun showTabContent(position: Int) {
|
||||
val fragmentManager = childFragmentManager
|
||||
val fragmentTransaction = fragmentManager.beginTransaction()
|
||||
|
||||
// 기존 프래그먼트 제거
|
||||
fragmentManager.fragments.forEach {
|
||||
fragmentTransaction.remove(it)
|
||||
}
|
||||
|
||||
// 선택된 탭에 따라 프래그먼트 표시
|
||||
val fragment = when (position) {
|
||||
0 -> CharacterTabFragment()
|
||||
1 -> TalkTabFragment()
|
||||
else -> CharacterTabFragment()
|
||||
}
|
||||
|
||||
fragmentTransaction.add(R.id.fl_container, fragment)
|
||||
fragmentTransaction.commit()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package kr.co.vividnext.sodalive.chat.character
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||
import kr.co.vividnext.sodalive.databinding.FragmentCharacterTabBinding
|
||||
|
||||
// 캐릭터 탭 프래그먼트
|
||||
class CharacterTabFragment : BaseFragment<FragmentCharacterTabBinding>(
|
||||
FragmentCharacterTabBinding::inflate
|
||||
) {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
// 캐릭터 탭 초기화 로직
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package kr.co.vividnext.sodalive.chat.talk
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import kr.co.vividnext.sodalive.base.BaseFragment
|
||||
import kr.co.vividnext.sodalive.databinding.FragmentTalkTabBinding
|
||||
|
||||
class TalkTabFragment : BaseFragment<FragmentTalkTabBinding>(
|
||||
FragmentTalkTabBinding::inflate
|
||||
) {
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
// 톡 탭 초기화 로직
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user