๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ’๏ธ Android/Android Studio

[Android] 17. ๋ ˆ์ด์•„์›ƒ : ์ปจ์ŠคํŠธ๋ ˆ์ธํŠธ ๋ ˆ์ด์•„์›ƒ(Constraint Layout) ์‹ค์Šต(2)๊ณผ ์ฒด์ด๋‹, ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์˜ ํ™œ์šฉ

by A Lim Han 2023. 1. 10.

# ๋ ˆ์ด์•„์›ƒ : ์ปจ์ŠคํŠธ๋ ˆ์ธํŠธ ๋ ˆ์ด์•„์›ƒ(Constraint Layout) ์‹ค์Šต(2)๊ณผ ์ฒด์ด๋‹, ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์˜ ํ™œ์šฉ

 

 

# ๋ ˆ์ด์•„์›ƒ : ์ปจ์ŠคํŠธ๋ ˆ์ธํŠธ ๋ ˆ์ด์•„์›ƒ(Constraint Layout) ์‹ค์Šต(2)

 

5. ๋‹ค๊ตญ์–ด ์ถ”๊ฐ€ํ•˜๊ธฐ

โ‘  Translations Editor ์˜คํ”ˆ ํ›„ ์ง€๊ตฌ ๋ชจ์–‘ ์•„์ด์ฝ˜ ํด๋ฆญ

 

 

โ‘ก ์›ํ•˜๋Š” ์–ธ์–ด๋ฅผ ์ฐพ์•„ ์ถ”๊ฐ€ํ•œ ๋’ค Default Value, ๋นˆ์นธ ์ฑ„์›Œ์ฃผ๊ธฐ

 

 

 

6. ์ œ์•ฝ ์ˆ˜์ •ํ•˜๊ธฐ

โ‘  ์•„๋ž˜์ชฝ ์›์„ ํด๋ฆญํ•˜์—ฌ ์ œ์•ฝ ์‚ญ์ œ  - > ํ•˜๋‹จ ์ œ์•ฝ์„ ์‚ญ์ œํ•˜๋ฉด ํ…์ŠคํŠธ ๋ทฐ๊ฐ€ ์ƒ๋‹จ์œผ๋กœ ์˜ฌ๋ผ๊ฐ„๋‹ค.

 

 

โ‘ก ์ ๋‹น ๊ฐ„๊ฒฉ ์œ ์ง€๋ฅผ ์œ„ํ•ด ์ƒ๋‹จ์˜ ์—ฌ๋ฐฑ์„ 16์œผ๋กœ ์„ค์ •  -->  โ‘ ๋ฒˆ ๊ทธ๋ฆผ๋ณด๋‹ค ์—ฌ๋ฐฑ์ด ๋Š˜์–ด๋‚œ ๊ฒƒ์„ ํ™•์ธ

 

 

 

7. ๋ฒ„ํŠผ ๋ฐฐ์น˜ํ•˜๊ธฐ

โ‘  ๋ ˆ์ด์•„์›ƒ ํ™”๋ฉด์˜ ํŒ”๋ ˆํŠธ ์ฐฝ์—์„œ Button์„ ์„ ํƒํ•˜์—ฌ ๋ ˆ์ด์•„์›ƒ์˜ ์ •์ค‘์•™์— ๋ฐฐ์น˜

 

 

โ‘ก ๋ฐฐ์น˜ํ•œ ๋ฒ„ํŠผ์„ ํด๋ฆญ ํ›„ ์†์„ฑ ์ฐฝ์—์„œ text ์†์„ฑ์„ 'click'์œผ๋กœ ์ˆ˜์ •

 

 

โ‘ข ๋ฒ„ํŠผ์˜ ID๋ฅผ 'clickButton'์œผ๋กœ ์ˆ˜์ •

 

 

โ‘ฃ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ event๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด MainActivity.kt ์—์„œ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •

 

 

โ‘ค ์•ฑ์„ ์‹คํ–‰์‹œํ‚จ ๋’ค ๋ฒ„ํŠผ ํด๋ฆญ  -->  ์šฐ์ธก์—์„œ ์ขŒ์ธก์˜ ๋ชจ์Šต์œผ๋กœ ๋ฐ”๋€œ์„ ํ™•์ธ

 

 

 

 

# ๋ ˆ์ด์•„์›ƒ : ์ปจ์ŠคํŠธ๋ ˆ์ธํŠธ ๋ ˆ์ด์•„์›ƒ(Constraint Layout)๊ณผ ์ฒด์ด๋‹(Chaning)

 

- ์ฒด์ด๋‹ (Chaning)

: ์ปจ์ŠคํŠธ๋ ˆ์ธํŠธ๋กœ ์—ฐ๊ฒฐ๋œ ์œ„์ ฏ๋ผ๋ฆฌ ์„œ๋กœ์˜ ์œ„์น˜๊ฐ’์„ ๊ณต์œ ํ•˜์—ฌ ์ƒ๋Œ€์ ์ธ ๊ฐ’์œผ๋กœ ํฌํ‚ค์™€ ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๋„๋ก ํ•จ

 

 

 

- ์ฒด์ด๋‹ ์‹ค์Šต

1. ํŒ”๋ ˆํŠธ์˜ ๋ฒ„ํŠผ ์นดํ…Œ๊ณ ๋ฆฌ์—์„œ Button 4๊ฐœ๋ฅผ UI ํŽธ์ง‘๊ธฐ์— ๋“œ๋ž˜๊ทธํ•˜์—ฌ ๋ฐฐ์น˜

-->  1๋ฒˆ ๊ณผ์ •์—์„œ๋Š” ์ปจ์ŠคํŠธ๋ ˆ์ธํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.

 

 

2. ์ƒ๋‹จ์˜ ๋ฒ„ํŠผ 2๊ฐœ๋ฅผ ์„ ํƒ ํ›„ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ  -->  ํŒ์—…๋˜๋Š” ๋ฉ”๋‰ด์—์„œ [Chains]-[Create Horizontal Chain] ์„ ํƒ

-->  ํ•˜๋‹จ์˜ ๋ฒ„ํŠผ 2๊ฐœ๋„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฒด์ด๋‹

 

 

3. ์ƒ๋‹จ์˜ ๋ฒ„ํŠผ 2๊ฐœ๋ฅผ ์„ ํƒ ํ›„ ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ  -->  ํŒ์—…๋˜๋Š” ๋ฉ”๋‰ด์—์„œ [Chains]-[Create Vertical Chain] ์„ ํƒ

-->  ํ•˜๋‹จ์˜ ๋ฒ„ํŠผ 2๊ฐœ๋„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฒด์ด๋‹

 

 

4. ๋ฒ„ํŠผ 4๊ฐœ ๋ชจ๋‘ ์„ ํƒ ํ›„ ์†์„ฑ์—์„œ layout_width, layoout_height ๊ฐ’์„ 'match_constraint'๋กœ ๋ณ€๊ฒฝ

-->  ๊ฐ’์ด '0dp'๋กœ ๋ณ€๊ฒฝ๋จ์„ ํ™•์ธ

 

 

5. ์ฒด์ด๋‹์ด ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋จ์„ ํ™•์ธ

 

 

 

 

# ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค์˜ ํ™œ์šฉ

์ž๋™ ์ €์žฅ ๊ธฐ๋Šฅ(Auto Save) ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๋Š” ์ž๋™์ ์œผ๋กœ ์‹ค์‹œ๊ฐ„ ์ €์žฅ
์ฝ”๋“œ ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ(Code Completion) ์ž…๋ ฅํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชจ๋“  ๊ธ€์ž๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ํ•ด๋‹น ๊ธ€์ž๋ฅผ ํฌํ•จํ•œ ์ฝ”๋“œ๋ฅผ ๋‚˜์—ด
๋””๋ฒ„๊น…(Debugging) ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์‹คํ–‰๋œ ์ƒํƒœ์—์„œ ์ค‘๋‹จ์ (Breakpoint)์„ ์ด์šฉํ•œ ์†Œ์Šค ์ฝ”๋“œ ๋ถ„์„