๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
android

[android/์•ˆ๋“œ๋กœ์ด๋“œ] ๋ฆฌ์ŠคํŠธ๋ทฐ vs ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ์ฐจ์ด์ , ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ๊ฐœ๋…

by hello_world.cpp 2022. 4. 23.
728x90
๋ฐ˜์‘ํ˜•

 

 

๐Ÿ‘‰ ์ œ๊ฐ€ ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋‘”๊ฒƒ์ด๋ผ ์ผ๋ถ€ ์ •ํ™•ํ•˜์ง€ ์•Š์€ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

โ“ ๋ฆฌ์ŠคํŠธ ๋ทฐ (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 ๋˜๋Š” ๊ฒƒ์ด๋‹ค ๐Ÿงš‍โ™€๏ธ 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€