ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] Recycler View ์‚ฌ์šฉ๋ฒ•
    Android 2021. 1. 4. 21:49
    ๋ฐ˜์‘ํ˜•
    • ์ด ๊ธ€์€ Recycler View ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.

    RecyclerView ๋ž€?

    • RecyclerView๋Š” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” View ์ž…๋‹ˆ๋‹ค.

    • ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ์‹œ ์Šคํฌ๋ฆฐ์„ ์•„๋ž˜๋กœ ๋‚ด๋ฆด ๋•Œ, RecyclerView๋Š” view๋ฅผ ์—†์• ์ง€ ์•Š๊ณ  ์žฌ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • ListView์—์„œ Adapter์˜ getView ๋ฉ”์†Œ๋“œ์—์„œ convertView๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    • ์ด ์žฌ์‚ฌ์šฉ์€ ๋งŽ์€ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์•ฑ์˜ ๋ฐ˜์‘์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์†Œ๋น„ ์ „๋ ฅ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ์ฃผ์š” ํด๋ž˜์Šค

    RecyclerView

    • ๋ฐ์ดํ„ฐ์— ์ผ์น˜ํ•˜๋Š” ๋ทฐ๋ฅผ ํฌํ•จํ•˜๋Š” ViewGroup, view ์ž์ฒด๋„ ๋  ์ˆ˜ ์žˆ์–ด์„œ ๋‹ค๋ฅธ UI ์š”์†Œ์ฒ˜๋Ÿผ ๋ ˆ์ด์•„์›ƒ ๋‚ด์— ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ViewHolder

    • ๋ฆฌ์ŠคํŠธ ๋‚ด์˜ ๊ฐ ์š”์†Œ๋“ค์€ view holder์— ์˜ํ•ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.
    • view holder๊ฐ€ ์ƒ์„ฑ๋์„ ๋•Œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์ง€๋งŒ, ์ƒ์„ฑ๋œ ์ดํ›„ RecyclerView๋Š” ViewHolder๋ฅผ ๋ฐ์ดํ„ฐ์— ๋ฐ”์ธ๋”ฉ ์‹œํ‚ต๋‹ˆ๋‹ค.

    Adapter

    • Adapter์˜ ๋‚ด๋ถ€์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•จ์œผ๋กœ์จ RecyclerView๊ฐ€ view๋ฅผ ์š”์ฒญํ•˜๊ณ  view๋“ค์„ ๋ฐ์ดํ„ฐ์—๊ฒŒ ๋ฐ”์ธ๋”ฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    LayoutManager

    • The layout manager๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๊ฐœ๋ณ„์ ์ธ ์š”์†Œ๋“ค์„ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

     

    RecyclerView ์‚ฌ์šฉ

    • class ๋‚ด๋ถ€์— static class๋กœ ์„ ์–ธ์„ ํ–ˆ์ง€๋งŒ ๋ณธ์งˆ์ ์œผ๋กœ๋Š” ๋ณ„๊ฐœ์˜ class์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์˜ ํŽธ๋ฆฌ์„ฑ์„ ์œ„ํ•ด ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

    • onCreateViewHolder : ์ƒˆ๋กœ์šด ViewHolder๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ, ์ด ๋ฉ”์†Œ๋“œ๋Š” ViewHolder์™€ View๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜์ง€๋งŒ, ์„ธ๋ถ€์  ์ธ ๋‚ด์šฉ์„ ์ฑ„์šฐ์ง„ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์•„์ง์€ ViewHolder๊ฐ€ ํŠน์ • ๋ฐ์ดํ„ฐ์— ๋ฐ”์ธ๋”ฉ ๋œ ์ƒํƒœ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

    • onBindViewHolder : ์ด ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ViewHolder์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ์‹œํ‚ต๋‹ˆ๋‹ค.

    • getItemCount : ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์˜ ํฌ๊ธฐ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

     

     

    ๊ฒฐ๊ณผ

    ๋ฐ˜์‘ํ˜•
Designed by Tistory.