본문 바로가기
Flutter/Widget

플러터에서 FAB 확장이란? FloatingActionButton(FAB)

by Maccrey Coding 2024. 7. 17.
728x90
반응형

 

FAB 확장은 FloatingActionButton(FAB) 위젯을 확장하여 여러 개의 액션 버튼을 표시하는 기능입니다.

주요 기능과 활용 방법, 장점과 단점 등을 자세히 살펴보고, 실제 코드 예시와 함께 FAB 확장을 활용하는 방법을 알려드리겠습니다.

1. FAB 확장의 주요 기능

FAB 확장은 기본 FAB 버튼을 클릭하면 추가적인 버튼들이 펼쳐져 더 많은 기능을 제공하는 기능입니다.

이를 통해 화면 공간을 효율적으로 활용하면서도 사용자에게 다양한 옵션을 제공할 수 있습니다.

FAB 확장은 다음과 같은 주요 기능을 제공합니다:

  • 공간 효율성: 단일 FAB 버튼 대신 여러 버튼을 표시하여 화면 공간을 효율적으로 활용할 수 있습니다.
  • 사용자 경험 향상: 다양한 액션 버튼을 제공하여 사용자가 원하는 작업을 빠르고 쉽게 수행할 수 있도록 도와줍니다.
  • 시각적 매력: FAB 확장은 애니메이션 효과를 통해 시각적으로 매력적인 인터페이스를 구현할 수 있습니다.

2. FAB 확장 활용 방법

FAB 확장을 활용하려면 다음과 같은 단계를 거쳐야 합니다:

  1. FloatingActionButton 위젯 생성: 기본 FAB 버튼을 만드는 것과 동일하게 FloatingActionButton 위젯을 생성합니다.
  2. onPressed 속성에 확장/축소 함수 지정: onPressed 속성에 함수를 지정하여 FAB 버튼 클릭 시 FAB 확장/축소를 제어합니다.
  3. AnimatedContainer 또는 Stack 위젯 사용: FAB 확장 시 표시될 버튼들을 애니메이션 효과와 함께 배치하기 위해 AnimatedContainer 또는 Stack 위젯을 사용합니다.
  4. Visibility 위젯 사용: FAB 확장 여부에 따라 버튼들을 표시/숨기기 위해 Visibility 위젯을 사용합니다.
  5. Row 또는 Column 위젯 사용: FAB 확장 시 표시될 버튼들을 가로 또는 세로 방향으로 배치하기 위해 Row 또는 Column 위젯을 사용합니다.
  6. FloatingActionButton.mini 속성 사용: FAB 확장 시 표시될 버튼들을 작게 만들기 위해 FloatingActionButton.mini 속성을 사용합니다.

3. 실제 코드 예

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text('Page Content'),
      ),
      floatingActionButton: Container(
        width: 56, // FloatingActionButton의 너비
        height: 56, // FloatingActionButton의 높이
        child: FloatingActionButton(
          onPressed: () {}, // 버튼 클릭 시 실행될 함수
          child: Icon(Icons.add), // 버튼 내부의 아이콘
          backgroundColor: Colors.green, // 버튼 배경색
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(30), // 버튼 모서리의 둥글기
          ),
        ),
      ),
      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, // FloatingActionButton 위치
      bottomNavigationBar: BottomAppBar(
        shape: CircularNotchedRectangle(), // BottomAppBar 상단 모양
        color: Colors.green, // BottomAppBar 배경색
        child: Row(
          mainAxisAlignment: MainAxisAlignment.spaceAround, // 아이콘들을 균등하게 배치
          children: <Widget>[
            IconButton(
              icon: Icon(Icons.home, color: Colors.lightBlueAccent), // 홈 아이콘과 색상
              onPressed: () {}, // 아이콘 클릭 시 실행될 함수
            ),
            SizedBox(width: 32), // 아이콘 사이의 간격
            IconButton(
              icon: Icon(Icons.favorite, color: Colors.red), // 즐겨찾기 아이콘과 색상
              onPressed: () {}, // 아이콘 클릭 시 실행될 함수
            ),
          ],
        ),
      ),
    );
  }
}

4. FAB 확장의 장점

FAB 확장을 사용하면 다음과 같은 장점이 있습니다:

  • 공간 효율성: 단일 FAB 버튼 대신 여러 버튼을 표시하여 화면 공간을 효율적으로 활용할 수 있습니다.
  • 사용자 경험 향상: 다양한 액션 버튼을 제공하여 사용자가 원하는 작업을 빠르고 쉽게 수행할 수 있도록 도와줍니다.
  • 시각적 매력: FAB 확란은 애니메이션 효과를 통해 시각적으로 매력적인 인터페이스를 구현할 수 있습니다.
  • 다양한 기능 구현 가능: FAB 확란을 통해 다양한 기능을 제공하는 메뉴나 도구 모음을 구현할 수 있습니다.

5. FAB 확장의 단점

FAB 확장을 사용하면 다음과 같은 단점도 존재합니다:

  • 초보자에게 어려움: FAB 확란 구현은 기본 FAB 버튼보다 더 복잡하며, 애니메이션 효과 및 상태 관리 등을 이해해야 합니다.
  • 접근성 문제: 시각 장애인 사용자에게는 FAB 확란을 인지하기 어려울 수 있으며, 화면 읽기 기능과 호환되지 않을 수 있습니다.
  • 성능 영향: 애니메이션 효과를 사용하면 성능 영향을 고려해야 합니다.

6. FAB 확장 사용 시 고려 사항

FAB 확장을 사용할 때는 다음과 같은 사항을 고려해야 합니다:

  • 사용자 인터페이스 디자인: FAB 확장이 사용자 인터페이스 디자인과 일관되고 자연스럽게 느껴지는지 확인해야 합니다.
  • 접근성: 시각 장애인 사용자와 키보드 사용자를 위한 접근성을 고려해야 합니다.
  • 성능: 애니메이션 효과를 사용할 때는 성능 영향을 고려해야 합니다.
  • 테스트: 다양한 기기와 환경에서 FAB 확장의 동작을 테스트해야 합니다.

7. 마무리

FAB 확장은 Flutter에서 다양한 기능을 제공하고 사용자 경험을 향상시키는 데 유용한 기능입니다.

장점과 단점을 이해하고, 적절하게 사용한다면 효과적인 인터페이스를 구현하는 데 도움이 될 것입니다.

이 블로그 포스팅이 FAB 확장에 대한 이해를 돕고 실제 개발에 활용하는 데 도움이 되었기를 바랍니다.

궁금한 점이나 추가적으로 알고 싶은 내용이 있으면 언제든지 질문해주세요.

 

728x90
반응형