@@ -11,6 +11,7 @@ import androidx.recyclerview.widget.LinearSnapHelper
1111import androidx.recyclerview.widget.RecyclerView
1212import com.example.spoteam_android.R
1313import com.example.spoteam_android.databinding.FragmentMemberStudyBinding
14+ import com.example.spoteam_android.ui.study.FixedRoundedSpinnerAdapter
1415import com.example.spoteam_android.ui.study.MemberNumberRVAdapter
1516import com.example.spoteam_android.ui.study.OnlineStudyFragment
1617
@@ -35,55 +36,43 @@ class MemberStudyFragment : Fragment() {
3536 goToPreviusFragment()
3637 }
3738
38- val numbers = (0 .. 9 ).toList()
39+ val numbers = (1 .. 9 ).toList()
3940 memberAdapter = MemberNumberRVAdapter (numbers)
41+ val snapHelper = LinearSnapHelper ()
42+ snapHelper.attachToRecyclerView(binding.rvMemberStudyNum)
43+
44+
4045
4146
4247 binding.rvMemberStudyNum.adapter = memberAdapter
4348 binding.rvMemberStudyNum.layoutManager = LinearLayoutManager (requireContext(), LinearLayoutManager .HORIZONTAL , false )
4449
4550
4651 memberAdapter.onItemClick = { position ->
47- binding.rvMemberStudyNum.smoothScrollToPosition(position)
48-
49- val selectedNumber = numbers[position]
52+ smoothScrollToCenter(position)
5053 memberAdapter.setSelectedPosition(position)
51- binding.selectedNumberText.text = " ${String .format(" %02d" , selectedNumber)} 명"
54+ binding.selectedNumberText.text = " ${String .format(" %02d" , numbers[position])} 명"
55+ binding.fragmentMemberStudyBt.isEnabled = true
5256 }
5357
5458
5559
60+
61+
62+
63+
64+
65+
5666 return binding.root
5767 }
5868
69+
5970 private fun setupSpinners () {
60- // 참여 인원 Spinner 설정
61- // 성별 Spinner 설정
62- val genderSpinner: Spinner = binding.fragmentMemberStudyGenderSpinner
63- val genderAdapter = ArrayAdapter .createFromResource(
64- requireContext(),
65- R .array.gender_array,
66- R .layout.spinner_item
67- )
68- genderAdapter.setDropDownViewResource(R .layout.spinner_dropdown_item)
69- genderSpinner.adapter = genderAdapter
71+ val genderList = listOf (" 누구나" , " 남성" , " 여성" )
72+ val genderAdapter = FixedRoundedSpinnerAdapter (requireContext(), genderList)
73+ binding.fragmentMemberStudyGenderSpinner.adapter = genderAdapter
7074 }
7175
72- // private fun setupSpinners() {
73- // val context = requireContext()
74- //
75- // // 참여 인원 Spinner 설정
76- // val numSpinner: Spinner = binding.fragmentMemberStudyNumSpinner
77- // val numItems = resources.getStringArray(R.array.fragment_study_num_spinner_array).toList()
78- // val numAdapter = CustomSpinnerAdapter(context, numItems)
79- // numSpinner.adapter = numAdapter
80- //
81- // // 성별 Spinner 설정
82- // val genderSpinner: Spinner = binding.fragmentMemberStudyGenderSpinner
83- // val genderItems = resources.getStringArray(R.array.gender_array).toList()
84- // val genderAdapter = CustomSpinnerAdapter(context, genderItems)
85- // genderSpinner.adapter = genderAdapter
86- // }
8776
8877
8978 private fun setupRangeSlider () {
@@ -117,7 +106,6 @@ class MemberStudyFragment : Fragment() {
117106 val minAge = ageRangeSlider.values[0 ].toInt()
118107 val maxAge = ageRangeSlider.values[1 ].toInt()
119108
120- // profileImage를 ViewModel에서 가져오는 예시
121109 val profileImage = viewModel.studyRequest.value?.profileImage
122110
123111 viewModel.setStudyData(
@@ -136,6 +124,26 @@ class MemberStudyFragment : Fragment() {
136124
137125 }
138126
127+ // private fun updateNextButtonState() {
128+ // val isChecked = binding.
129+ //
130+ // if (isOnline) {
131+ // binding.fragmentOnlineStudyBt.isEnabled = true
132+ // binding.fragmentOnlineStudyBt.visibility = View.VISIBLE
133+ // binding.fragmentOnlineStudyLocationPlusBt.visibility = View.GONE
134+ // } else {
135+ // if (hasChip) {
136+ // binding.fragmentOnlineStudyBt.isEnabled = true
137+ // binding.fragmentOnlineStudyBt.visibility = View.VISIBLE
138+ // binding.fragmentOnlineStudyLocationPlusBt.visibility = View.GONE
139+ // } else {
140+ // binding.fragmentOnlineStudyBt.isEnabled = false
141+ // binding.fragmentOnlineStudyBt.visibility = View.GONE
142+ // binding.fragmentOnlineStudyLocationPlusBt.visibility = View.VISIBLE
143+ // }
144+ // }
145+ // }
146+
139147 private fun goToNextFragment () {
140148 val transaction = parentFragmentManager.beginTransaction()
141149 transaction.replace(R .id.main_frm, ActivityFeeStudyFragment ())
@@ -148,4 +156,26 @@ class MemberStudyFragment : Fragment() {
148156 transaction.addToBackStack(null ) // 백스택에 추가
149157 transaction.commit()
150158 }
159+ private fun smoothScrollToCenter (position : Int ) {
160+ val layoutManager = binding.rvMemberStudyNum.layoutManager as LinearLayoutManager
161+ val view = layoutManager.findViewByPosition(position)
162+ if (view != null ) {
163+ val rvCenterX = binding.rvMemberStudyNum.width / 2
164+ val viewCenterX = view.left + view.width / 2
165+ val scrollBy = viewCenterX - rvCenterX
166+ binding.rvMemberStudyNum.smoothScrollBy(scrollBy, 0 )
167+ } else {
168+ binding.rvMemberStudyNum.scrollToPosition(position)
169+ binding.rvMemberStudyNum.post {
170+ val v = layoutManager.findViewByPosition(position)
171+ v?.let {
172+ val rvCenterX = binding.rvMemberStudyNum.width / 2
173+ val viewCenterX = it.left + it.width / 2
174+ val scrollBy = viewCenterX - rvCenterX
175+ binding.rvMemberStudyNum.smoothScrollBy(scrollBy, 0 )
176+ }
177+ }
178+ }
179+ }
180+
151181}
0 commit comments