๐ ์ ๊ฐ ๊ฐ์ธ์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํด๋๊ฒ์ด๋ผ ์ผ๋ถ ์ ํํ์ง ์์ ์ ๋ณด๊ฐ ์์ ์ ์์ต๋๋ค.
โ ๋ฆฌ์คํธ ๋ทฐ (listView) vs ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ (recyclerView)
" ์ฌ์ฉ์๊ฐ ํ๋ฉด์ ์์์ ์๋๋ก ์คํฌ๋กค ํ๋ ์ํฉ์ผ ๋ "
- ๋ฆฌ์คํธ๋ทฐ(listView) : ์ฒซ๋ฒ์งธ itemView๋ฅผ ์ญ์ ํ๊ณ ์๋ซ๋ถ๋ถ์์ ์๋กญ๊ฒ ๋ณด์ผ itemView ๊ฐ์ฒด๋ฅผ ์๋ก ์์ฑํ๋ค. ์คํฌ๋กค์ ์์๋๋ก ๋ช๋ฒ ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ์๋ฐฑ, ์์ฒ๊ฐ์ itemView๊ฐ ์์ฑ๋์ด ๋ญ๋น๊ฐ ์ฌํ ์ ์๋ค.
- ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ(recyclerView) : ์ฒซ๋ฒ์งธ์ itemView๋ฅผ ์ญ์ ํ์ง ์๊ณ ์๋์ชฝ์์ ์๋ก ๋ํ๋ ์์น๋ก ์ด๋์์ผ ์ฌ์ฌ์ฉ๋๋ค.
๋ฆฌ์คํธ๋ทฐ์ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ์ ํฐ ์ฐจ์ด์ ์ itemView๊ฐ ์ฌ์ฌ์ฉ๋๋๊ฑฐ์ ์ฐจ์ด์ ์๋ค.
โ ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ๊ตฌ์กฐ
- data list : ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ์์ ๋ค์ด๊ฐ data ๋ชฉ๋ก์ด๋ค. ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ ์์ itemView์ ๋ค์ด๊ฐ data๋ค์ด dataList์์์ ๊ฐ์ ธ์์ binding ๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
- Adapter : ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ์์ itemView๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๋ง๋ค์ด์ง itemView์ dataList์ data๋ฅผ ๊ฐ์ ธ์์ binding์์ผ์ฃผ๋ ์ค๊ฐ๋ค๋ฆฌ์ญํ ์ ํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. itemView ๊ฐ์ฒด๋ฅผ ์ค์ง์ ์ผ๋ก ์์ฑํ๊ณ ๋ฐ์ดํฐ์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ์์ ์ ํ๋ค.
- Layout Manager : ์์ดํ ๋ค์ ๋ฐฐ์นํ ์ ์๋ ํํ๋ฅผ ๊ฒฐ์ ํ ์ ์๊ฒ ํด์ค๋ค. ์์ง์ผ๋ก ๋์ดํ ์ง, ์ํ์ผ๋ก ๋์ดํ ์ง. ๊ฒฉ์๋ก ๋์ดํ ์ง ๋ฑ๋ฑ
- ViewHolder : viewHolder๋ ์ด๋ฆ์ฒ๋ผ ์์ฑ๋ view๊ฐ์ฒด๋ค์ holdingํด์ฃผ๋ ์ญํ ์ ํ๋ค. ๋ฆฌ์ฌ์ดํด๋ฌ๋ทฐ๋ ์ฒ์ ๋ช๊ฐ์ itemView๋ฅผ ์์ฑํ๊ณ ์ด๊ฒ๋ค์ ๊ณ์ ์ฌํ์ฉํ๋๋ฐ ์์ฑ๋ itemView ๊ฐ์ฒด๊ฐ ํ๋ฒ ์ฌ์ฉ๋๊ณ ์ฌ๋ผ์ง์ง์๋๋ก viewHolder๋ผ๋ ๊ฐ์ฒด์ ๋ด์์ค๋ค.
๐งโ๏ธ viewHolder์์ ๋ด๊ฒจ์๋ itemView๋ค์ด ์ฌํ์ฉ๋๊ณ ์ด itemView๋ค์ data๊ฐ binding ๋๋ ๊ฒ์ด๋ค ๐งโ๏ธ
๋๊ธ