v1.0.1animated_sidebar
Flutter용 접을 수 있는 사이드바 플러그인으로 웹 및 데스크톱 애플리케이션에 최적화되어 있습니다.
42좋아요 38730일 다운로드150Pub 점수
AndroidiOSWebmacOSWindowsLinux
Flutter Web 및 데스크톱용으로 최적화된 반응형 사이드바
{"sdk":"flutter"}{"sdk":"flutter"}^2.0.0아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
pub package Libraries.io for GitHub License
A highly customizable and styleable collapsable sidebar plugin for Flutter, optimized for web and desktop applications.
example-ui
Add the following to your pubspec.yaml file:
dependencies:
animated_sidebar: ^1.0.0
or use the following command:
flutter pub add animated_sidebar
Add the following import to your dart file:
import 'package:animated_sidebar/animated_sidebar.dart';
define a list of SidebarItem objects:
import 'package:animated_sidebar/animated_sidebar.dart';
final List<SidebarItem> items = [
SidebarItem(icon: Icons.home, text: 'Home'),
SidebarItem(icon: Icons.notifications, text: 'Notifications'),
SidebarItem(icon: Icons.person, text: 'Management'),
];
it is also possible to define multiple SidebarChildItem for every SidebarItem.
import 'package:animated_sidebar/animated_sidebar.dart';
final List<SidebarItem> items = [
SidebarItem(icon: Icons.home, text: 'Home'),
SidebarItem(
icon: Icons.person,
text: 'Management',
children: [
SidebarChildItem(icon: Icons.person, text: 'Users'),
SidebarChildItem(icon: Icons.verified_user, text: 'Roles'),
],
),
];
The Item Containing the Children is Collapsed and expand only on tap. If the Current selected item is a SidebarChildItem the overlying Item keeps expanded
AnimatedSidebarimport 'package:animated_sidebar/animated_sidebar.dart';
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
body: Row(
children: [
AnimatedSidebar(
expanded: MediaQuery.of(context).size.width > 600,
items: items,
selectedIndex: 0,
onItemSelected: (index) => print(index),
headerIcon: Icons.ac_unit_sharp,
headerIconColor: Colors.amberAccent,
headerText: 'Example',
),
Center(
child: Text(
'Page: $activeTab',
style: Theme.of(context).textTheme.headline3,
),
),
],
),
);
}
AnimatedSidebar widget and handle state external :import 'package:animated_sidebar/animated_sidebar.dart';
int activeTab = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
body: Row(
children: [
AnimatedSidebar(
expanded: MediaQuery.of(context).size.width > 600,
items: items,
selectedIndex: activeTab,
autoSelectedIndex: false, // must be false if you want to handle state external
onItemSelected: (index) =>
setState(() => activeTab = index),
headerIcon: Icons.ac_unit_sharp,
headerIconColor: Colors.amberAccent,
headerText: 'Example',
),
Center(
child: Text(
'Page: $activeTab',
style: Theme.of(context).textTheme.headline3,
),
),
],
),
);
}