๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
APP/ANDROID

[๋ถ€์ŠคํŠธ์ฝ”์Šค]์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋ž˜๊ทธ๋จผํŠธ(fragment),์•ก์…˜๋ฐ”

by mingzoo 2020. 2. 27.

ํ”„๋ž˜๊ทธ๋จผํŠธ(Fragment)

๋‚˜์˜ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ™”๋ฉด์„ ๊ฐ€์ง€๋„๋ก ๋งŒ๋“ค๊ธฐ์œ„ํ•ด ๊ณ ์•ˆ๋œ ๊ฐœ๋…์ด๋‹ค. ํ•˜๋‚˜์˜ ๋””์Šคํ”Œ๋ ˆ์ด์—์„œ ์—ฌ๋Ÿฌํ™”๋ฉด์„ ๋„์šฐ๊ณ  ์‹ถ์€ ๋‹ˆ์ฆˆ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด์„œ ํ”„๋ž˜๊ทธ๋จผํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ทธ ๋‹ˆ์ฆˆ๋ฅผ ํ•ด๊ฒฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

ํ•ธ๋“œํฐ์˜ ํ™”๋ฉด๊ณผ ๋‹ฌ๋ฆฌ ์•„์ดํŒจ๋“œ๋‚˜ ํƒœ๋ธ”๋ฆฟ ๊ฐ™์€ ๊ธฐ๊ธฐ์—์„œ๋Š” ํ•œ ํ™”๋ฉด์— ํ•œ๋ฒˆ์— ๋ณด์—ฌ์ฃผ์–ด ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค.

 

์ด์™€ ๊ด€๋ จ๋œ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ํ”„๋ž˜๊ทธ๋จผํŠธ ๋ง๊ณ ๋„ ๋ ˆ์ด์•„์›ƒ(layout)๊ณผ ์•กํ‹ฐ๋น„ํ‹ฐ(activity)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ ˆ์ด์•„์›ƒ์˜ ๊ฒฝ์šฐ ์ •์ ์ธ ์š”์†Œ๋ฅผ ์ •์˜ํ•˜๋Š” ๋งŒํผ ์ด๋ฒคํŠธ๋‚˜ ๋ฐ์ดํ„ฐ์˜ ์ด๋™๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๊ณ , ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๊ฒฝ์šฐ ActivityGroup ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•ด ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ์ค‘์ฒฉ ์‹œํ‚ด์œผ๋กœ์จ ํ™”๋ฉด ๋ถ„ํ• ์„ ๊ตฌํ˜„ํ–ˆ์ง€๋งŒ ์ด ๋˜ํ•œ ์ค‘์ฒฉ๋œ ์•กํ‹ฐ๋น„ํ‹ฐ๊ฐ„์˜ ์ƒ๋ช…์ฃผ๊ธฐ ๊ด€๊ณ„๋‚˜ ์—ฌ๋Ÿฌ ๊ตฌ์กฐ์ ์ธ ๋ฌธ์ œ๋“ค๋กœ ๋‹ค๋ฃจ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.

์ด๋ฅผ ๋ณด์™„ํ•œ๊ฒŒ ํ”„๋ž˜๊ทธ๋จผํŠธ(Fragment)์ด๋‹ค.

 

<ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ ํŠน์ง•>

 

  • ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ๋ถ„ํ• ํ•˜์—ฌ ํ™”๋ฉด์˜ ํ•œ ๋ถ€๋ถ„์„ ์ •์˜ํ•œ๋‹ค.
  • ์•กํ‹ฐ๋น„ํ‹ฐ์™€ ๊ฐ™์ด ๋ ˆ์ด์•„์›ƒ, ๋™์ž‘ ์ฒ˜๋ฆฌ, ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋…๋ฆฝ์ ์ธ ๋ชจ๋“ˆ์ด๋‹ค.
  • ๋‹ค๋ฅธ ์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ๋„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์–ด ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋›ฐ์–ด๋‚˜๋‹ค.
  • ์•กํ‹ฐ๋น„ํ‹ฐ ๋‚ด์—์„œ ์‹คํ–‰ ์ค‘์— ์ถ”๊ฐ€, ์ œ๊ฑฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

ํ”„๋ž˜๊ทธ๋จผํŠธ์˜ ์ƒ๋ช…์ฃผ๊ธฐ

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


์•ก์…˜๋ฐ”(Action Bar)

์•ก์…˜๋ฐ”๋Š” ์•กํ‹ฐ๋น„ํ‹ฐ ๋‚ด๋ถ€์— ๊ธฐ๋ณธ์ ์œผ๋กœ ํฌํ•จ๋œ ์š”์†Œ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ xml์— ์•ก์…˜๋ฐ” ์œ„์ ฏ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์•„๋„ ์•กํ‹ฐ๋น„ํ‹ฐ์— ์ง€์ •๋œ ํ…Œ๋งˆ๊ฐ€ ์•ฑ๋ฐ”(App Bar)๋ฅผ ์ง€์›ํ•˜๋ฉด, ์•ก์…˜๋ฐ”๋ฅผ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์•ฑ๋ฐ”(App Bar)๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํˆด ๋ฐ”( Tool Bar)

ํˆด๋ฐ”๋Š” XML์— ์ž‘์„ฑ๋˜๋Š” ๋‹ค๋ฅธ ๋ทฐ๋“ค (Button, ๋ ˆ์ด์•„์›ƒ) ๋“ฑ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ทจ๊ธ‰๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ํˆด๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ๋ ˆ์ด์•„์›ƒ XML์— android.support.v7.widget.Toolbar๋ฅผ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ, ์•กํ‹ฐ๋น„ํ‹ฐ์— “.NoActionBar”๊ฐ€ ํฌํ•จ๋œ ํ…Œ๋งˆ๋ฅผ ์ง€์ •ํ•˜์—ฌ ๊ธฐ๋ณธ ์•ก์…˜๋ฐ”๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ setSupportActionBar() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํˆด๋ฐ”๋ฅผ ์•กํ‹ฐ๋น„ํ‹ฐ์˜ ์•ฑ๋ฐ”(App Bar)๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์•กํ‹ฐ๋น„ํ‹ฐ์—์„œ ํˆด๋ฐ”๊ฐ€ View ์œ„์ ฏ์œผ๋กœ ๋‹ค๋ฃจ์–ด์ง„๋‹ค๋Š” ๊ฒƒ์€ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ, ์œ„์น˜ ์กฐ์ ˆ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋“ฑ๋“ฑ์— ์ด์ ์ด ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ณ ์ •๋œ ์œ„์น˜์— ๋‹จ ํ•˜๋‚˜๋งŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ์•ก์…˜๋ฐ”์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ํˆด๋ฐ”๋Š” ๊ฐ๊ฐ ๋ถ„๋ฆฌ๋œ ์˜์—ญ์— ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์•ก์…˜๋ฐ”๋ณด๋‹ค ํˆด ๋ฐ”๊ฐ€ ๋” ํŽธ๋ฆฌํ•˜์—ฌ ํˆด ๋ฐ”๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

 

!ํˆด๋ฐ” ์‚ฌ์šฉ์‹œ ์ฃผ์˜์ !

actionbar๋ฅผ ์—†์• ๋Š” ์ž‘์—…์ด ํ•„์š”

res -> values -> style ํด๋”๋กœ ๋“ค์–ด๊ฐ€์„œ

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

 

app:showAsAction=""์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์„ค์ • ์„ค๋ช…

always

์•„์ดํ…œ์„ ํ•ญ์ƒ ํƒ€์ดํ‹€๋ฐ”์— ํ‘œ์‹œํ•จ

never, ifRoom๋ณด๋‹ค ์šฐ์„ ์‹œ๋˜๋ฉฐ, ๊ณต๊ฐ„์ด ์—†์œผ๋ฉด ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ

never ์•„์ดํ…œ์„ ์•ก์…˜๋ฐ”์˜ ์•ก์…˜์œผ๋กœ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ (never) ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๋ฉ”๋‰ด์— ๋ฐ”๋กœ ํ‘œ์‹œ
ifRoom ๋งŒ์•ฝ ๊ณต๊ฐ„์ด ์žˆ๋‹ค๋ฉด ifRoom์˜ ์•ก์…˜์œผ๋กœ ํ‘œ์‹œํ•˜๊ณ , ๊ณต๊ฐ„์ด ์—†๋‹ค๋ฉด ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฉ”๋‰ด์— ํ‘œ์‹œ
withText ์•„์ดํ…œ์„ ์•ก์…˜์œผ๋กœ ํ‘œ์‹œํ•  ๋•Œ, ํ…์ŠคํŠธ์™€ ๊ฐ™์ด(withText)ํ‘œ์‹œ
collapseActionView ์•„์ดํ…œ์— ์ปค์Šคํ…€ ์•ก์…˜ ๋ทฐ๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ, ์ถ•์†Œ๋œ ํ˜•ํƒœ๋กœ ํ‘œ์‹œ

 

 

728x90