[Android] Toolbar, FrameLayout, BottomNavigationView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ๋‹จ๋ฐ”, ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ (#1 - ์„œ๋ก )

2022. 4. 4. 04:07ยท๐Ÿ’ป Language/Android : ์•ˆ๋“œ๋กœ์ด๋“œ
728x90
728x90

Android Studio๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋‹ค. ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ์„ ๋ฐฐ์šด์ง€ 2๋…„์ฐจ์ธ ์ง€๊ธˆ๋„ ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ์–ด๋ ค์šด ๊ฒŒ ๋งŽ์€๋ฐ, ์ผ๋‹จ XML์ด๋ผ๋Š” ์–ธ์–ด๋ฅผ ๊ฑฐ์˜ ์ฒ˜์Œ ์ ‘ํ–ˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Java ์ฝ”๋“œ๊ฐ€ ๊ธฐ์กด์˜ Java์™€ ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ XML๊ณผ ์—ฐ๋™ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•„์„œ ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™๋‹ค.

 

์•ˆ๋“œ๋กœ์ด๋“œ์— ์„œํˆฐ ๋‚˜๋Š” XML์˜ ๋Œ€๋ถ€๋ถ„์„ ๊ทธ๋‚˜๋งˆ ํ™œ์šฉํ•˜๊ธฐ ์‰ฌ์šด LinearLayout์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.

๋‚ด๊ฐ€ ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ์–ดํ”Œ์˜ ๋Œ€๋ถ€๋ถ„์€ ์ƒ๋‹จ๋ฐ”์™€ ์ค‘์•™ ์ฝ˜ํ…์ธ  ์˜์—ญ, ๊ทธ๋ฆฌ๊ณ  ํ•˜๋‹จ๋ฐ”๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค๊ณ  ๋А๊ปด LinearLayout์œผ๋กœ ์ƒ๋‹จ๋ฐ” ์˜์—ญ, ์ค‘์•™ ์ฝ˜ํ…์ธ  ์˜์—ญ, ํ•˜๋‹จ๋ฐ” ์˜์—ญ์„ ๋‚˜๋ˆ„์–ด ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

<LinearLayout>
    <LinearLayout>
        ...
    </LinearLayout>
    <LinearLayout>
        ...
    </LinearLayout>
    <LinearLayout>
        ...
    </LinearLayout>
</LinearLayout>

์•„์ฃผ ๊ธฐ๋ณธ์ค‘์˜ ๊ธฐ๋ณธ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์„ฑ์œผ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•˜๋‹ˆ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

  • ๋‹จ์ˆœํžˆ ImageView๋ฅผ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ImageButton ๋˜๋Š” Button์œผ๋กœ ๋ฒ„ํŠผ์„ ๋งŒ๋“ค ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์— ๋”ฐ๋ผ ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•˜๋„๋ก ํ•  ์ˆ˜ ์—†์Œ.
  • ์ค‘์•™ ์ฝ˜ํ…์ธ  ์˜์—ญ์˜ ๋‚ด์šฉ๋งŒ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ชจ๋“  XML์— ์ƒ๋‹จ๋ฐ”์™€ ํ•˜๋‹จ๋ฐ”๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ (์ค‘๋ณต ๋ฐœ์ƒ)
  • DrawerLayout์„ ๊ตฌ์„ฑํ•  ๋•Œ Navigation ๋ฉ”๋‰ด๋ฅผ ๋™์ ์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์Œ.

 

๋ฌผ๋ก  ์ด๊ฒƒ ์™ธ์—๋„ ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, ๋‚ด๊ฐ€ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋А๋‚€ ๋ฌธ์ œ์ ์€ ์œ„ 3๊ฐ€์ง€์ด๋‹ค. ์ง€๊ธˆ ๊ฐœ๋ฐœํ•˜๋Š” ์–ดํ”Œ์—๋Š” ์šฐ์ธก ์ƒ๋‹จ์˜ ๋ฉ”๋‰ด ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์Šฌ๋ผ์ด๋“œ๋˜๋Š” ์ƒˆ๋กœ์šด ๋ฉ”๋‰ด๊ฐ€ ์—ด๋ฆฌ๊ณ (DrawerLayout) ๊ทธ ๋ฉ”๋‰ด์—์„œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•  ์˜ˆ์ •์ด์—ˆ๋Š”๋ฐ(ex. ์นด์นด์˜คํ†ก ์ฑ„ํŒ…๋ฐฉ ์šฐ์ธก ์ƒ๋‹จ์˜ ๋ฉ”๋‰ด ๋ฒ„ํŠผ), ์‚ฌ์šฉ์ž ํ”„๋กœํ•„์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์—์„œ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๊ฐ€ ๊ฐ€์žฅ ์ปธ๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค ๊ฐˆ์•„์—Ž๊ธฐ๋กœ ๋‹ค์งํ–ˆ๋‹ค ...

 

๊ฒŒ๋‹ค๊ฐ€ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ ํˆด์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” AppBar, ToolBar, NavigationView ๋“ฑ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๋‘๊ณ  LinearLayout๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฑด ๊ฐœ๋ฐœ์ž๋กœ์„œ ๋„ˆ๋ฌด ํ•˜์ˆ˜์˜ ๋ฐฉ์‹์ด ์•„๋‹Œ๊ฐ€ํ•˜๋Š” ๋งˆ์Œ๋„ ์žˆ์—ˆ์ง€๋งŒ (ใ…‹ใ…‹ใ…‹) ์•„๋ฌดํŠผ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ?์˜ ๊ณต๋ถ€๋ฅผ ํ•ด๋ณด๊ณ ์ž ์‹œ์ž‘ํ–ˆ๋‹ค.

 

์‹œ์ž‘์€ ๊ทธ๋Ÿฌํ–ˆ์ง€๋งŒ.... ์ •๋ง ๋งŽ์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๊ณ  ๊ทผ ์ผ์ฃผ์ผ๋™์•ˆ ์ƒ๋‹จ๋ฐ” ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ์— ๋งค๋‹ฌ๋ ค์„œ ๊ฒจ์šฐ๊ฒจ์šฐ ์„ฑ๊ณตํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. (๊ฐ™์ด ๊ฐœ๋ฐœ์ค‘์ธ ์นœ๊ตฌ์™€ ์—ด์‹ฌํžˆ ํ† ๋ก ํ•œ ๋์— ...)

 

 

์•„๋ฌดํŠผ! ์ตœ์ข…์ ์œผ๋กœ ์™„์„ฑํ•œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ–ˆ๋‹ค.

<LinearLayout>
	<include/>
	<LinearLayout>
		<FrameLayout>
		</FrameLayout>
		<DrawerLayout>
			<NavigationView/>
		</DrawerLayout>
	</LinearLayout>
	<BottomNavigationView/>
</LinearLayout>

๊ฐ€์žฅ ๋ฐ”๊นฅ์ชฝ์— LinearLayout ํ‹€์„ ๋‘๊ณ , ToolBar XML์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” include ๋ธ”๋ก๊ณผ ๋˜ ํ•˜๋‚˜์˜ LinearLayout, ํ•˜๋‹จ๋ฐ”๋ฅผ ๋‹ด๋‹นํ•˜๋Š” BottomNavigationView๋ฅผ ๋‚˜๋ž€ํžˆ ๋ฐฐ์น˜, LinearLayout์˜ ์•ˆ์—๋Š” ์ค‘์•™ ์ฝ˜ํ…์ธ  ์˜์—ญ์„ ๋‹ด๋‹นํ•˜๋Š” FrameLayout๊ณผ ์šฐ์ธก ์Šฌ๋ผ์ด๋“œ ๋ฉ”๋‰ด DrawerLayout์„ ๋ฐฐ์น˜ํ•˜์˜€๋‹ค.

 

๋งˆ์ง€๋ง‰์— ํ›„์ˆ ํ•  ๋‚ด์šฉ์ด์ง€๋งŒ, FrameLayout์ด๋ผ๋Š” ๊ฑธ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ดค๋Š”๋ฐ XML ์ˆœ์„œ์— ์ •๋ง ๋ฏผ๊ฐํ•˜๋‹ค๋Š” ๊ฑธ ๋А๊ผˆ๊ณ  .. ๋™์  ์šด์šฉ์ด ๊ฐ€๋Šฅํ•œ ์žฅ์ ์ด ์žˆ์ง€๋งŒ ์ฒ˜์Œ ์“ฐ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋„ˆ๋ฌด ๊ฐ€ํ˜นํ•œ ๊ฒƒ ๊ฐ™๋‹ค. (์‚ฌ์‹ค ์ด XML์—์„œ LinearLayout ๋นผ๊ณ ๋Š” ๋‹ค ์ดˆ๋ฉด์ด๋‹ค.)

 

ํž˜๋“ค๊ฒŒ ์™„์„ฑํ•œ ๋งŒํผ ๋ธ”๋กœ๊ทธ์— ๋‚จ๊ฒจ์„œ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด ํŒŒํŠธ๋ฅผ ๋‚˜๋ˆ ์„œ ๊ธ€์„ ์จ๋ณผ ์˜ˆ์ •์ด๋‹ค!

๋‹ค์Œ ๊ธ€์€ Vertical ๋ฐฐ์น˜์˜ ์ตœ์ƒ๋‹จ์ธ ToolBar๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

728x90
320x100

'๐Ÿ’ป Language > Android : ์•ˆ๋“œ๋กœ์ด๋“œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Android] CoordinatorLayout, AppBarLayout, FloatingActionButton์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.  (0) 2022.04.05
[Android] CoordinatorLayout์„ ์ด์šฉํ•œ ToolBar ๋งŒ๋“ค๊ธฐ  (0) 2022.04.05
[Android] Toolbar, FrameLayout, BottomNavigationView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ๋‹จ๋ฐ”, ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ (#2 - ToolBar)  (0) 2022.04.04
'๐Ÿ’ป Language/Android : ์•ˆ๋“œ๋กœ์ด๋“œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Android] CoordinatorLayout, AppBarLayout, FloatingActionButton์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.
  • [Android] CoordinatorLayout์„ ์ด์šฉํ•œ ToolBar ๋งŒ๋“ค๊ธฐ
  • [Android] Toolbar, FrameLayout, BottomNavigationView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ๋‹จ๋ฐ”, ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ (#2 - ToolBar)
mxnxeonx
mxnxeonx
"์•„, ์ด๊ฑฐ ๋ญ์˜€๋”๋ผ"๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ์œ„ํ•œ ์ผ๊ธฐ์žฅ.
  • mxnxeonx
    MJ's Development Diary
    mxnxeonx
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (154)
      • ๐Ÿ’ป Language (43)
        • Java : ์ž๋ฐ” (18)
        • Python : ํŒŒ์ด์ฌ (9)
        • ROS : ๋กœ๋ด‡์‹œ์Šคํ…œ (9)
        • Android : ์•ˆ๋“œ๋กœ์ด๋“œ (4)
        • JavaScript : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ (2)
      • ๐ŸŒ Environment (19)
        • IDE : ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ (9)
        • Virtual : ๊ฐ€์ƒํ™˜๊ฒฝ (10)
      • โš™ Framework (12)
        • Vue-๋ทฐ (3)
        • Spring-์Šคํ”„๋ง (7)
      • ๐Ÿ’พ DataBase (18)
      • ๐ŸŒŒ OS (36)
        • Linux-๋ฆฌ๋ˆ…์Šค (36)
      • ๐Ÿ’ฌ CI · CD (7)
        • Git : ๊นƒ (7)
      • ๐Ÿ“ƒ ETC (3)
      • ๐Ÿค– AI (4)
  • ๋งํฌ

    • GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
mxnxeonx
[Android] Toolbar, FrameLayout, BottomNavigationView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ๋‹จ๋ฐ”, ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ (#1 - ์„œ๋ก )
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”