안녕하세요 안드로이드 앱 제작 관련 독학 중 질문 드릴내용이 있어 드리니 답변 해주시면 감사하겠습니다.
현재 리사이클러뷰 공부 중 화면에 7개의 숫자를 보여주고, 스크롤시 화면에 보이는 아이템의 중간값에 텍스트를 진하게 하고 싶습니다. 지금 아래 코드는 화면에 7개의 텍스트뷰 나오면서, 스크롤 완료시 제일 왼쪽 아이템 기준으로 맞추는것까지 구현 하였습니다.
아직 배운지 얼마안되어 찾아봐도 정확한 내용을 못찾게 되어 여기에 올리게 되었습니다.

-> MainActivity 코드 입니다.
class MainActivity : AppCompatActivity() {
val binding by lazy {ActivityMainBinding.inflate(layoutInflater)}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
val list = setData()
val adapter = NumberAdapter()
adapter.items = list
binding.recyclerView.addOnScrollListener(object :RecyclerView.OnScrollListener(){
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
var itemsNo = (recyclerView.layoutManager as LinearLayoutManager).findFirstVisibleItemPosition()
binding.recyclerView.smoothScrollToPosition(itemsNo)
binding.text.setText("나이: ${itemsNo+4}")
}
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
}
})
binding.recyclerView.adapter = adapter
binding.recyclerView.layoutManager = LinearLayoutManager(this).also { it.orientation = LinearLayoutManager.HORIZONTAL }
}
fun setData():MutableList<org.seokhwan.myrecyclerviewtest5.Number>{
val data = mutableListOf<org.seokhwan.myrecyclerviewtest5.Number>()
for (no in 1..100){
var dataNo = Number("$no")
data.add(dataNo)
}
return data
}
}
->NumberAdapter 입니다.
class NumberAdapter:RecyclerView.Adapter<Holder>() {
var items = mutableListOf<Number>()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
val binding = ItemNumberBinding.inflate(LayoutInflater.from(parent.context),parent,false)
return Holder(binding)
}
override fun onBindViewHolder(holder: Holder, position: Int) {
val num = items.get(position)
holder.setNumber(num)
}
override fun getItemCount(): Int {
return items.size
}
}
class Holder(val binding: ItemNumberBinding):RecyclerView.ViewHolder(binding.root){
fun setNumber(num:Number){
binding.numberText.text = num.num
}
}
=> 화면 구성은
메인액티비티 : 텍스트뷰 + 리사이클러뷰 / 어댑터 : 텍스트뷰 끝입니다.