[Android] View์™€ ViewGroup

๐Ÿ’ก ์•ˆ๋“œ๋กœ์ด๋“œ UI ์‹œ์Šคํ…œ์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋…์ธ View์™€ ViewGroup์— ๋Œ€ํ•˜์—ฌ ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค !

 

View์™€ ViewGroup

  • ์•ˆ๋“œ๋กœ์ด๋“œ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ์š”์†Œ๋กœ View์™€ ViewGroup์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•ฑ์„ ์‹คํ–‰์‹œ์ผฐ์„ ๋•Œ ํ™”๋ฉด์— ๋ณด์ด๋Š” ๋ชจ๋“  ์š”์†Œ๋Š” View๋กœ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Ÿฌํ•œ View๋ฅผ ๋‹ด์•„ ํ™”๋ฉด์— ์ ์ ˆํžˆ ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ์ด ViewGroup์ž…๋‹ˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ๋ทฐ ๊ฐ์ฒด๋ฅผ ์œ„์ ฏ์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ทฐ ๊ทธ๋ฃน์€ ๋ ˆ์ด์•„์›ƒ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

View

  • View๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ UI ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ์ด๋ฉฐ, ํ™”๋ฉด์— ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  UI ์š”์†Œ๋Š” View๋ฅผ ์ƒ์†๋ฐ›์Šต๋‹ˆ๋‹ค.
  • View๋ฅผ ํ†ตํ•ด ํ™”๋ฉด์— ํ…์ŠคํŠธ๋‚˜ ์ด๋ฏธ์ง€, ๋ฒ„ํŠผ์„ ํฌํ•จํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ UI ์š”์†Œ๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ง•

  • ๋‹จ์ผ UI์š”์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, onDraw() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํ™”๋ฉด์— ๊ทธ๋ ค์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ํ„ฐ์น˜, ํ‚ค ์ž…๋ ฅ ๋“ฑ์˜ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ViewGroup

  • ViewGroup์€ View์˜ ์„œ๋ธŒ ํด๋ž˜์Šค์ด๋ฉฐ ๋‹ค๋ฅธ View ๋˜๋Š” ViewGorup์„ ์ž์‹์œผ๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ViewGroup์€ ๋ ˆ์ด์•„์›ƒ์„ ์ •์˜ํ•˜๊ณ , ์ž์‹ ๋ทฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐฐ์น˜ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

ํŠน์ง•

  • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž์‹ View ๋˜๋Š” ViewGroup์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž์‹ ๋ทฐ๋“ค์˜ ๋ ˆ์ด์•„์›ƒ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋ฉฐ, ViewGroup ์ž์ฒด๋„ ํ•˜๋‚˜์˜ View๋กœ ์ทจ๊ธ‰๋˜์–ด ๋‹ค๋ฅธ ViewGroup์˜ ์ž์‹์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

View์™€ ViewGroup์˜ ์ข…๋ฅ˜

๋ทฐ์˜ ์ข…๋ฅ˜

  • TextView : ํ™”๋ฉด์— ํ…์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • EditText : ์•ฑ์˜ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๋ทฐ์ž…๋‹ˆ๋‹ค.
  • Button : ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ํด๋ฆญ ๊ธฐ๋Šฅ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ทฐ์ž…๋‹ˆ๋‹ค.
  • ImageView : ํ™”๋ฉด์— ์ด๋ฏธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ทฐ์ž…๋‹ˆ๋‹ค.
  • CheckBox : ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ ์ค‘ ์„ ํƒ๋œ ํ•ญ๋ชฉ๊ณผ ์„ ํƒ๋˜์ง€ ์•Š์€ ํ•ญ๋ชฉ์„ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • RadioButton : ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ ์ค‘ ํ•œ ๊ฐ€์ง€ ํ•ญ๋ชฉ๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ทฐ์ž…๋‹ˆ๋‹ค.

๋ทฐ ๊ทธ๋ฃน ์ข…๋ฅ˜

  • LinearLayout : ๋‚ด๋ถ€ ๋ทฐ๋“ค์„ ๊ฐ€๋กœ ํ˜น์€ ์„ธ๋กœ ๋ฐฉํ–ฅ ์ˆœ์„œ๋กœ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • RelativeLayout : ๋‚ด๋ถ€ ๋ทฐ๋“ค์„ ๋ทฐ๋“ค๊ฐ„์˜ ์ƒ๋Œ€์ ์ธ ์œ„์น˜์— ๋”ฐ๋ผ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • FrameLayout : ๋‚ด๋ถ€ ๋ทฐ๋“ค์„ ์ค‘์ฒฉํ•˜์—ฌ ๋ฐฐ์น˜ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • TableLayout : ๋‚ด๋ถ€ ๋ทฐ๋“ค์„ ํ–‰๊ณผ ์—ด์˜ ํ‘œํ˜•ํƒœ๋กœ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • GridLayout : ๋‚ด๋ถ€ ๋ทฐ๋“ค์„ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • ConstraintLayout : ๋‚ด๋ถ€ ๋ทฐ๋“ค์˜ ํฌ๊ธฐ์™€ ์œ„์น˜๋ฅผ ๋‹ค๋ฅธ ์š”์†Œ๋“ค๊ณผ์˜ ์ œ์•ฝ์กฐ๊ฑด์„ ์„ค์ •ํ•˜์—ฌ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ •๋ฆฌ

  • View๋Š” UI ๊ธฐ๋ณธ ์š”์†Œ์ด๋ฉฐ, ํ™”๋ฉด์— ๊ทธ๋ ค์งˆ ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ ์š”์†Œ ์ž…๋‹ˆ๋‹ค.
  • ViewGroup์€ ์—ฌ๋Ÿฌ View๋‚˜ ๋‹ค๋ฅธ ViewGroup์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค.
    • ์ž์‹ ๋ทฐ๋“ค์˜ ๋ ˆ์ด์•„์›ƒ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ๋‘ ํด๋ž˜์Šค๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ UI๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋นŒ๋”ฉ ๋ธ”๋ก์ด๋ฉฐ ViewGroup์€ View๋ฅผ ํฌํ•จํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋ฉด์„œ ๋” ๋ณต์žกํ•œ UI ๋ ˆ์ด์•„์›ƒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

https://kadosholy.tistory.com/127