Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .idea/deploymentTargetDropDown.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,11 @@ dependencies {
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.11.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation ("com.google.android.material:material:1.4.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
implementation ("androidx.navigation:navigation-fragment-ktx:2.3.0")
implementation ("androidx.navigation:navigation-ui-ktx:2.3.0")

}
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>


</application>

</manifest>
11 changes: 0 additions & 11 deletions app/src/main/java/com/example/brandol/AvartarFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import com.example.brandol.databinding.FragmentAvartarBinding


private const val ARG_PARAM1 = "param1"
Expand All @@ -15,7 +14,6 @@ private const val ARG_PARAM2 = "param2"
class AvartarFragment : Fragment() {
private var param1: String? = null
private var param2: String? = null
lateinit var binding: FragmentAvartarBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
Expand All @@ -24,15 +22,6 @@ class AvartarFragment : Fragment() {
}
}

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentAvartarBinding.inflate(inflater,container,false)
binding.abataChattingQuantity.bringToFront()
return binding.root
}

companion object {

fun newInstance(param1: String, param2: String) =
Expand Down
17 changes: 17 additions & 0 deletions app/src/main/java/com/example/brandol/CatagoryFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.example.brandol

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment

class CatagoryFragment : Fragment() {

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_catagory, container, false)
}
}
1 change: 1 addition & 0 deletions app/src/main/java/com/example/brandol/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class MainActivity : AppCompatActivity() {

//바텀 네비게이션
initBottomnavigation()

}

private fun initBottomnavigation() {
Expand Down
40 changes: 40 additions & 0 deletions app/src/main/java/com/example/brandol/PointDetailFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
//package com.example.brandol
import PointDetailVPAdapter
import android.graphics.Color
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.example.brandol.databinding.FragmentPointDetailBinding
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator

class PointDetailFragment : Fragment() {

private lateinit var binding: FragmentPointDetailBinding
private val tabTitles = arrayOf("전체", "획득", "사용")
//private val selectedColor = Color.parseColor("#800080") // 보라색

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPointDetailBinding.inflate(inflater, container, false)
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

// ViewPager2 어댑터 설정
val adapter = PointDetailVPAdapter(this)
binding.pointUsePageVp.adapter = adapter

// ViewPager2와 TabLayout 연결
TabLayoutMediator(binding.pointUsePageTb, binding.pointUsePageVp) { tab, position ->
tab.text = tabTitles[position]
}.attach()

}
}
20 changes: 20 additions & 0 deletions app/src/main/java/com/example/brandol/PointDetailVPAdapter.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.example.brandol.PointUseGetFragment
import com.example.brandol.PointUseTotalFragment
import com.example.brandol.PointUseUseFragment

class PointDetailVPAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {

override fun getItemCount(): Int = 3 // 탭의 개수

override fun createFragment(position: Int): Fragment {
// 각 탭에 맞는 Fragment를 반환
return when (position) {
0 -> PointUseTotalFragment()
1 -> PointUseGetFragment()
2 -> PointUseUseFragment()
else -> throw IllegalArgumentException("Invalid position: $position")
}
}
}
26 changes: 25 additions & 1 deletion app/src/main/java/com/example/brandol/PointFragment.kt
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
package com.example.brandol

import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import androidx.navigation.findNavController
import androidx.navigation.fragment.findNavController
import com.example.brandol.databinding.FragmentPointBinding

// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
Expand All @@ -21,20 +26,39 @@ class PointFragment : Fragment() {
private var param1: String? = null
private var param2: String? = null

private lateinit var binding: FragmentPointBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}

}

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_point, container, false)
binding = FragmentPointBinding.inflate(inflater, container, false)
return binding.root
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

/**
binding.pointUseIv.setOnClickListener {
startActivity(Intent(activity,PointDetailFragment::class.java))
}**/

// "Go to PointDetailFragment" 버튼 클릭 시
binding.pointUseIv.setOnClickListener {
// 화면 전환
findNavController().navigate(R.id.action_pointFragment_to_pointDetailFragment3)
}
}

companion object {
Expand Down
24 changes: 24 additions & 0 deletions app/src/main/java/com/example/brandol/PointUseGetFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.example.brandol

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.example.brandol.databinding.FragmentPointUseGetBinding
import com.example.brandol.databinding.FragmentPointUseTotalBinding

class PointUseGetFragment : Fragment() {

lateinit var binding : FragmentPointUseGetBinding

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPointUseGetBinding.inflate(inflater,container,false)

return binding.root
}
}
23 changes: 23 additions & 0 deletions app/src/main/java/com/example/brandol/PointUseTotalFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.example.brandol

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.example.brandol.databinding.FragmentPointUseTotalBinding

class PointUseTotalFragment :Fragment() {

lateinit var binding : FragmentPointUseTotalBinding

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPointUseTotalBinding.inflate(inflater,container,false)

return binding.root
}
}
24 changes: 24 additions & 0 deletions app/src/main/java/com/example/brandol/PointUseUseFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.example.brandol

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.example.brandol.databinding.FragmentPointUseTotalBinding
import com.example.brandol.databinding.FragmentPointUseUseBinding

class PointUseUseFragment : Fragment() {

lateinit var binding : FragmentPointUseUseBinding

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentPointUseUseBinding.inflate(inflater,container,false)

return binding.root
}
}
22 changes: 22 additions & 0 deletions app/src/main/java/com/example/brandol/SearchAvartarFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.example.brandol

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.example.brandol.databinding.FragmentSearchAvartarBinding

class SearchAvartarFragment : Fragment() {
lateinit var binding : FragmentSearchAvartarBinding

override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentSearchAvartarBinding.inflate(inflater,container,false)

return binding.root
}
}
70 changes: 70 additions & 0 deletions app/src/main/java/com/example/brandol/SearchBarFragment.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.example.brandol

import android.graphics.Color
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.viewpager2.widget.ViewPager2
import com.example.brandol.databinding.FragmentSearchBarBinding
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator

class SearchBarFragment : Fragment() {

private lateinit var binding: FragmentSearchBarBinding

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {

binding = FragmentSearchBarBinding.inflate(inflater, container, false)

// TabLayout 초기화
val tabLayout: TabLayout = binding.searchBarTb

// 탭의 제목 리스트
val tabTitles = arrayListOf("브랜드", "유저", "콘텐츠", "아바타 스토어")

// ViewPager2 초기화
val viewPager: ViewPager2 = binding.searchBarVp
val adapter = SearchPagerAdapter(childFragmentManager, lifecycle)
viewPager.adapter = adapter

// TabLayout에 ViewPager2 연결
TabLayoutMediator(binding.searchBarTb, binding.searchBarVp) {
tab, position ->
tab.text = tabTitles[position]
}.attach()

// Tab이 선택되었을 때의 색상 변경
tabLayout.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
override fun onTabSelected(tab: TabLayout.Tab?) {
// 선택된 탭의 색상 변경
tab?.text?.let {
when (it) {
"브랜드" -> tab.view.setBackgroundColor(Color.BLUE)
"유저" -> tab.view.setBackgroundColor(Color.BLUE)
"콘텐츠" -> tab.view.setBackgroundColor(Color.BLUE)
"아바타 스토어" -> tab.view.setBackgroundColor(Color.BLUE)
}
}
}

override fun onTabUnselected(tab: TabLayout.Tab?) {
// 선택 해제된 탭의 색상 초기화
tab?.view?.setBackgroundColor(Color.TRANSPARENT)
}

override fun onTabReselected(tab: TabLayout.Tab?) {
// 재선택된 탭의 색상 변경 (여기서는 동일하게 처리)
onTabSelected(tab)
}
})

return binding.root
}
}

Loading