๋ชฉ์ฐจ
recyclerview์ ๋ํด์ ์ฌ์ฉ๋ฒ์

1๏ธโฃActivity ํด๋์ค
๐ซฑ์กํฐ๋นํฐ์์๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ํฐ์ ๋๊ฒจ์ฃผ๋ฉฐ ์ด๋ํฐ ๊ฐ์ฒด ์์ฑ
๐ซฑ๋ ์ด์ด๋ ํ์ผ์ ์ ์ํด์ค ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ์ ์ด๋ํฐ์ ์ด๋ํฐ๋ฅผ ์ฐ๊ฒฐํด์ค๋ค.
๐ซฑ๋ฐ์ดํฐ๋ค์ ์ด๋ป๊ฒ ๋ฐฐ์นํ ์ง layoutManager๋ฅผ ํตํด ๊ฒฐ์

๊ฐ ์์ดํ ์ ๋ ์ด์์ ๊ตฌํ

Adapter
๐ซฑ์ธ์์ ์์
์ด๋ํฐ๋ ์ฐ์ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ์ ๋ณด์ฌ์ค ๋ฐ์ดํฐ๋ฅผ ์ธ์๋ก ๋ฐ๋๋ค.
๊ทธ๋ฆฌ๊ณ RecyclerView.Adapter<๋ทฐ ํ๋ ํด๋์ค>๋ฅผ ์์๋ฐ๋๋ก ํ๋ค.
์ด๋ํฐ์ ๊ผญ ์ธ์๋ก ๋๊ฒจ์ฃผ์ด์ผํ ๊น? ์ด๋ํฐ ๋ด๋ถ์์ ๊ทธ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น?

๐ซฑ๊ตฌํํด์ค์ผํ๋ ๋ฉ์๋

๐ซฑonBindViewHolder

ViewHolder
๐ซฑ์ฐ์ ๊ฐ ์์ดํ ์ ๋ํ ๋ ์ด์์์ inflate ํด์ค๋ค.
๋ ์ด์์ inflate์ ์๋ฏธ๋?
๋ ์ด์์ ํ์ผ์ ์ ์ํด์ค ๋ด์ฉ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉํ๊ณ ์ด๋ฅผ ๋ทฐ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ณผ์ ์ด๋ค.
์ฆ xml ๊ฐ์ฒดํ!!

ํด๋ฆญ์ด๋ฒคํธ ์ฒ๋ฆฌ

// ์กํฐ๋นํฐ์์
rvAdapter.itemClick =
object : ContentRVAdapter.ItemClick {
override fun onClick(
view: View,
position: Int,
) {
Toast.makeText(baseContext, items[position].title, Toast.LENGTH_SHORT).show()
//์ถ๊ฐ ๋ก์ง ๊ตฌ์ฑํด์ฃผ๊ธฐ
}
}
// Adapter ๋ด๋ถ์์
interface ItemClick {
fun onClick(
view: View,
position: Int,
)
}
var itemClick: ItemClick? = null
// onBindViewHolder ๋ด๋ถ์์
if (itemClick != null) {
holder.itemView.setOnClickListener {
v ->
itemClick?.onClick(v, position)
}
}
๐ค๋ฉ์ธ ํ์ด์ง ํ๋ฉด์ ์ ์ฉํ๊ธฐ
์ด ์๋ฌ๊ฐ ๋ญ๊น?
Backing property name is only allowed when a matching public property or function exists (cannot be auto-corrected)
๐ฅ์๋ฌ
๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๊ฐ ํ๋ฉด์ ๋จ๋ ๊ฒ์ ์ฑ๊ณตํ์ผ๋ ๋ฐ์ธ๋ฉ๋ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ๋์ผํ ํํ๋ก ๋ณด์ด๊ณ ์๋ค..!!
๋ทฐํ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ธ๋ฉํ๋ ๊ณผ์ ์์ ๋ฌธ์ ๊ฐ ์์๋ค.
๋ทฐ ์์์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๋ ๋ก์ง์ ๋นผ๋จน์ด์ ๋ฐ์ํ ๋ฌธ์ ์๋ค. ์ง๊ธ์ ์ ์์ ์ผ๋ก ์๋ํจ์ ํ์ธํ์๋ค!
ํ์ธ์ ์ํด์ ๋ทฐ๋ชจ๋ธ ์ฝ๋๋ฅผ ์ฃผ์ ์ฒ๋ฆฌ ํ ์คํ์์ผฐ๋๋ ์ ์ ์๋๋์๋ค. ๋ทฐ๋ชจ๋ธ ์ฝ๋์์ ๋ฌธ์ ๊ฐ ์๋ ๋ฏํ๋ค.
@AndroidEntryPoint
class ReviewFragment :
Fragment() {
// private val reportViewModel by viewModels<ReportViewModel>()
private lateinit var binding: FragmentMovieReviewBinding
@Inject lateinit var reportRepository: ReportRepository
'๐ค2024 ์๋๋ก์ด๋ > Filmo ์ํ ํ๋ก์ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ก๊ทธ์ธ ์ฑ๊ณต ์ ์ฒ๋ฆฌ ์๋ฌ ํด๊ฒฐํ๊ธฐ (0) | 2024.05.13 |
---|---|
๋ฉ์ธ ํ๋ฉด : ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ๊ตฌํ ๊ณผ์ ์ ๋ฆฌ (0) | 2024.05.10 |
๐ฃ๋ฉ์ธ ํ๋ฉด API ์ฐ๋ ์ข์ถฉ์ฐ๋๊ธฐ ๊ธฐ๋ก (2) | 2024.04.08 |
Android UI : Toolbar ์ฑ ๋ฐ ์ ์ฉํด์ฃผ๊ธฐ (1) | 2024.04.07 |
๊ฒ์ ํ๋ฉด ๊ตฌํ ๊ณผ์ ์ ๋ฆฌ (0) | 2024.04.07 |