FLUTTER ECOSYSTEM

blackmann/overlapping_panels

Flutter 앱을 위한 디스코드 스타일 네비게이션

겹치는 패널 프로젝트 이미지
Stars
57
Forks
7
최근 푸시(UTC)
2023. 10. 13.
프로젝트 상태
활성
Degreat GitHub avatar
GITHUB User

Degreat ↗

I can draw. I can't code. 😕

언어Dart

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 3 개
  • flutter{"sdk":"flutter"}
  • flutter_test개발 의존성{"sdk":"flutter"}
  • flutter_lints개발 의존성^1.0.0

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

Overlapping Panels Pub

Add Discord-like navigation to your app. Demo project here: overlapping_panels_demo

Demo
TODO

This widget does not support navigation events yet. So pressing the back button, does not slide the main panel back into view. This feature will be implemented in the nearest future.

Usage

Simple and straight to the point. Just provide usual widgets for all panels:

class _MyHomePageState extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        OverlappingPanels(
          // Using the Builder widget is not required. You can pass your widget directly. 
          // But to use `OverlappingPanels.of(context)` you need to wrap your widget in a Builder
          left: Builder(builder: (context) {
            return const LeftPage();
          }),
          right: Builder(
            builder: (context) => const RightPage(),
          ),
          main: Builder(
            builder: (context) {
              return const MainPage();
            },
          ),
          onSideChange: (side) {
            setState(() {
              if (side == RevealSide.main) {
                // hide something
              } else if (side == RevealSide.left) {
                // show something
              }
            });
          },
        ),
      ],
    );
  }
}

To be able to reveal a panel with the tap of a button, for example, do:

IconButton(
  icon: const Icon(Icons.menu),
  onPressed: () {
    // This is the main point
    OverlappingPanels.of(context)?.reveal(RevealSide.left);
  },
)