[Android] CoordinatorLayout, AppBarLayout, FloatingActionButton์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

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

ToolBar, DrawerLayout, NavigationView๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์—ด์‹ฌํžˆ ์•Œ์•„๋ณด๋˜ ์ค‘ CoordinatorLayout, AppBarLayout, FloatingActionButton์— ๋Œ€ํ•ด ์•Œ๊ฒŒ๋˜์—ˆ๊ณ , ๊ฐ๊ฐ ์–ด๋–ค ๊ธฐ๋Šฅ์ด ์žˆ๋Š”์ง€ ๊ณต๋ถ€ํ–ˆ๋‹ค.

 

 

 

1. CoordinatorLayout

์ƒ๋™๊ฐ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋ณธ Activity ํ…œํ”Œ๋ฆฟ์— ํฌํ•จ๋œ ๋ ˆ์ด์•„์›ƒ์ด๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด CoordinatorLayout์— ๋Œ€ํ•œ ์—ฌ๋Ÿฌ ์‚ฌ์‹ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

  • FrameLayout์— ๊ธฐ๋ฐ˜์„ ๋‘” Layout. FrameLayout์„ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™”๋ฉด์˜ ์ตœ์ƒ์œ„ ๋ทฐ๋กœ์„œ ์‚ฌ์šฉ๋œ๋‹ค. (์ƒ๋‹จ์ด ์•„๋‹Œ ์ƒ์œ„์ž„์— ์œ ์˜! AppBar ๋˜๋Š” FloatingActionButton)
  • ์ž์‹ ๋ทฐ๋“ค๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์œ„ํ•œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <com.google.android.material.appbar.AppBarLayout />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

 

Corrdinatorlayout์€ ์Šคํฌ๋กค ์ด๋ฒคํŠธ์— ๋”ฐ๋ผ ์•ฑ๋ฐ”์— ๋ณ€ํ™”๋ฅผ ์ค„ ๋•Œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ex) ์Šคํฌ๋กค์‹œ ์•ฑ๋ฐ”์˜ ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚˜๊ฑฐ๋‚˜ ์ค„์–ด๋“œ๋Š” ํ™”๋ฉด, ๋ฆฌ์‚ฌ์ดํด๋Ÿฌ๋ทฐ ๋“ฑ์„ ์Šคํฌ๋กคํ•  ๋–„ ์œ„๋กœ ์Šคํฌ๋กค์‹œ ์•ฑ๋ฐ”๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ  ์•„๋ž˜๋กœ ์Šคํฌ๋กค์‹œ ์•ฑ๋ฐ”๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚˜๋Š” ๋ฐ˜์‘ํ˜• ํ™”๋ฉด ๋“ฑ

 

์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹ ๊ฐœ๋ฐœ ๋ฌธ์„œ : CoordinatorLayout ๊ฐ€์ด๋“œ

https://developer.android.com/reference/androidx/coordinatorlayout/widget/CoordinatorLayout

 


 

2. AppBarLayout

Android์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ActionBar ๋˜๋Š” Toolbar๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™”๋ฉด ์ƒ๋‹จ์— AppBar๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

๋‹จ์ˆœํžˆ Toolbar๋งŒ ์‚ฌ์šฉํ•˜์—ฌ๋„ ๋ฌด๊ด€ํ•˜์ง€๋งŒ, AppBarLayout์„ ์‚ฌ์šฉํ•˜๋ฉด Activity ์ƒ๋‹จ์„ ๋”์šฑ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋Š” AppBarLayout ํƒœ๊ทธ ์•„๋ž˜์— Toolbar ํƒœ๊ทธ๋ฅผ ๋„ฃ๋Š”๋‹ค. Toolbar๋ฅผ AppBarLayout์œผ๋กœ ๊ฐ์‹ผ ํ˜•ํƒœ์ด๋‹ค.

    <com.google.android.material.appbar.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeName">

        <androidx.appcompat.widget.Toolbar />

    </com.google.android.material.appbar.AppBarLayout>

 

๊ทธ๋ ‡๋‹ค๋ฉด  Toolbar๋งŒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  AppBarLayout์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์˜ ์žฅ์ ์€ ๋ฌด์—‡์ผ๊นŒ?

  • Toolbar, Image, TabLayout ๋“ฑ ํ™”๋ฉด์˜ ์ƒ๋‹จ์„ ๋” ๋„“๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค!
  • CoordinatorLayout๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด AppBar๋ฅผ ํ™•๋Œ€ํ•˜๊ฑฐ๋‚˜ ์ถ•์†Œํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

CoordinatorLayout์€ ์ž์‹ ๋ทฐ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ ํšจ๊ณผ๋ฅผ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ž์‹์œผ๋กœ AppBarLayout์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šคํฌ๋กค์‹œ AppBar๊ฐ€ ๋‚˜ํƒ€๋‚ฌ๋‹ค๊ฐ€, ์‚ฌ๋ผ์กŒ๋‹ค ํ•˜๋Š” ๋“ฑ์˜ ์ด๋ฒคํŠธ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

AppBarLayout์€ LinearLayout์„ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฉฐ Vertical ์†์„ฑ๋งŒ ์ง€์›ํ•œ๋‹ค. ์•ฑ๋ฐ”์˜ ํŠน์„ฑ์ƒ ์Šคํฌ๋กค ์ด๋ฒคํŠธ๋ฅผ ์ง€์›ํ•ด์•ผํ•˜๋ฉฐ, CoordinatorLayout์˜ direct child๋กœ์„œ ์ƒํ•˜ ์Šคํฌ๋กค ์ด๋ฒคํŠธ์— ๋ฐ˜์‘ํ•˜๊ธฐ ์œ„ํ•จ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

 


 

3. FloatingActionButton

FloatingActionButton(ํ”Œ๋กœํŒ… ์ž‘์—… ๋ฒ„ํŠผ)์€ ์•ฑ UI์˜ ๊ธฐ๋ณธ ์ž‘์—…์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ์›ํ˜• ๋ฒ„ํŠผ์ด๋‹ค.

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

 

์ค„์—ฌ์„œ FAB๋ผ๊ณ  ๋ถ€๋ฅด๋Š” FloatingActionButton์€ ๋ ˆ์ด์•„์›ƒ ๋ฌธ์„œ(XML)์— ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

<com.google.android.material.floatingactionbutton.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom|end"
    android:layout_marginEnd="@dimen/fab_margin"
    android:layout_marginBottom="16dp"
    app:srcCompat="@android:drawable/ic_dialog_email" />

 

 

์œ„์น˜, ๋งˆ์ง„, ID ๋“ฑ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š”๋Œ€๋กœ ์ปค์Šคํ…€ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๋ฒ„ํŠผ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ์˜ ์ด๋ฒคํŠธ๋ฅผ ์ •์˜ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด Java ์ฝ”๋“œ์—์„œ setOnClickListener ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

 

์•ˆ๋“œ๋กœ์ด๋“œ ๊ณต์‹ ๊ฐœ๋ฐœ ๋ฌธ์„œ : ํ”Œ๋กœํŒ… ์ž‘์—… ๋ฒ„ํŠผ ์ถ”๊ฐ€ํ•˜๊ธฐ

https://developer.android.com/guide/topics/ui/floating-action-button?hl=ko

 

ํ”Œ๋กœํŒ… ์ž‘์—… ๋ฒ„ํŠผ ์ถ”๊ฐ€  |  Android ๊ฐœ๋ฐœ์ž  |  Android Developers

ํ”Œ๋กœํŒ… ์ž‘์—… ๋ฒ„ํŠผ ์ถ”๊ฐ€ ํ”Œ๋กœํŒ… ์ž‘์—… ๋ฒ„ํŠผ(FAB)์€ ์•ฑ UI์˜ ๊ธฐ๋ณธ ์ž‘์—…์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ์›ํ˜• ๋ฒ„ํŠผ์ž…๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€์—์„œ๋Š” FAB๋ฅผ ๋ ˆ์ด์•„์›ƒ์— ์ถ”๊ฐ€ํ•˜๊ณ , ๋ชจ์–‘์„ ๋งž์ถค์„ค์ •ํ•˜๋ฉฐ, ๋ฒ„ํŠผ ํƒญ์— ์‘๋‹ตํ•˜๋Š” ๋ฐฉ๋ฒ•์„

developer.android.com

 

๋จธํ‹ฐ๋ฆฌ์–ผ ๋””์ž์ธ ๊ฐ€์ด๋“œ๋ผ์ธ : ํ”Œ๋กœํŒ… ์ž‘์—… ๋ฒ„ํŠผ ๋””์ž์ธํ•˜๊ธฐ

https://material.io/components/buttons-floating-action-button#usage

 

Material Design

Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences.

material.io

 

728x90
320x100

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

[Android] CoordinatorLayout์„ ์ด์šฉํ•œ ToolBar ๋งŒ๋“ค๊ธฐ  (0) 2022.04.05
[Android] Toolbar, FrameLayout, BottomNavigationView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ๋‹จ๋ฐ”, ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ (#2 - ToolBar)  (0) 2022.04.04
[Android] Toolbar, FrameLayout, BottomNavigationView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ๋‹จ๋ฐ”, ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ (#1 - ์„œ๋ก )  (0) 2022.04.04
'๐Ÿ’ป Language/Android : ์•ˆ๋“œ๋กœ์ด๋“œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Android] CoordinatorLayout์„ ์ด์šฉํ•œ ToolBar ๋งŒ๋“ค๊ธฐ
  • [Android] Toolbar, FrameLayout, BottomNavigationView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ๋‹จ๋ฐ”, ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ (#2 - ToolBar)
  • [Android] Toolbar, FrameLayout, BottomNavigationView๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒ๋‹จ๋ฐ”, ํ•˜๋‹จ๋ฐ” ๋งŒ๋“ค๊ธฐ (#1 - ์„œ๋ก )
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] CoordinatorLayout, AppBarLayout, FloatingActionButton์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.
์ƒ๋‹จ์œผ๋กœ

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