joy_dropdowns 1.0.0+1 joy_dropdowns: ^1.0.0+1 copied to clipboard
A package to create dropdowns buttons with the hover property quickly.
Joy Dropdowns
A beautiful package to create controls with properties equivalent to web Dropdown quickly and customizable. see a live preview
Installing #
1. Depend on it #
Add this to your package's pubspec.yaml
file:
dependencies:
joy_dropdowns: ^1.0.0+1
2. Install it #
You can install packages from the command line:
with pub
:
$ pub get
with Flutter
:
$ flutter pub get
3. Import it #
Now in your Dart
code, you can use:
import 'package:joy_dropdowns/joy_dropdowns.dart';
Usage #
JoyDropDown(
overlayHeight: 300,
overlayWidth: 250,
overlayOffset: const Offset(0, 5),
overlayPosition: JoyOverlayPosition.bottom,
overlayWidget: Container(
decoration: const BoxDecoration(
color: Colors.red,
),
child: SingleChildScrollView(
physics: const ScrollPhysics(),
child: ListView.builder(
shrinkWrap: true,
itemCount: 4,
itemBuilder: (context, index) {
return InkWell(
onTap: () {
print('$index');
},
child: ListTile(
leading: const Icon(Icons.ac_unit),
title: Text('Item $index'),
),
);
},
),
),
),
child: ElevatedButton(
onPressed: () {},
child: Text('hover-me'),
),
),
These are all settings, but it goes from imagination to creating the other overlays.
overlayHeight
– This setting is self explanatory, but if it is null, the height will be set by the child of the button.overlayWidth
– Same intention as the previous one. If it is null, the width will be set by the child of the button.overlayOffset
– Maybe you need to move a little bit over there, a little bit over here...overlayPosition
–Where do you have the dropdown appear? That enum can help you. possible are: bottom, left, top, right.overlayWidget
– This is the dropdown widget, you need to put something other than a list, I put open for creativity.-
child
– This is the hoverable button widget, it can be anything, a custom container, an ElevatedButton...
JoyMenu - Fast & Elegant list #
If you want to add only one list and be happy, there is a factory method called "JoyDropDown.list", see:
JoyDropDown.list(
overlayOffset: const Offset(0, 5),
overlayPosition: JoyOverlayPosition.bottom,
menu: JoyMenu(
menuDecoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.5),
blurRadius: 10,
spreadRadius: 2,
),
],
borderRadius: BorderRadius.circular(10),
),
hoverColor: Color.fromARGB(255, 0, 116, 104),
defaultColor: Colors.teal,
items: items,
),
child: ElevatedButton(
onPressed: () {},
child: Text('hover-me'),
),
Note: It has many settings that can be changed.