All Projects → LanarsInc → Direct Select Flutter

LanarsInc / Direct Select Flutter

Licence: bsd-2-clause
DirectSelect is a selection widget with an ethereal, full-screen modal popup displaying the available choices when the widget is interact with. https://dribbble.com/shots/3876250-DirectSelect-Dropdown-ux

Programming Languages

dart
5743 projects

Projects that are alternatives of or similar to Direct Select Flutter

Carbon
Material Design implementation for Android 4.0+. Shadows, ripples, vectors, fonts, animations, widgets, rounded corners and more.
Stars: ✭ 2,942 (+717.22%)
Mutual labels:  widget
Snwe
🚀 Extensible, customisable, menubar replacement for macOS/UNIX.
Stars: ✭ 295 (-18.06%)
Mutual labels:  widget
Portal Lite
Multi-platform Personalized Portal: Web, Browser Extension. All components are web apps--users can compose their own Portal freely, and developers can contribute to the Privoce Web App library to easily incorporate their web app to our Portal.
Stars: ✭ 335 (-6.94%)
Mutual labels:  widget
Bootstrap Year Calendar
A fully customizable year calendar widget, for boostrap !
Stars: ✭ 282 (-21.67%)
Mutual labels:  widget
Stockticker
A resizable widget that shows your financial portfolio on your android home screen
Stars: ✭ 285 (-20.83%)
Mutual labels:  widget
Moufette
🦨 Moufette is developer-friendly, open-source set of tools to collect users feedback. Find us on Twitter @MoufetteHQ
Stars: ✭ 303 (-15.83%)
Mutual labels:  widget
Triangulationdrawable
Low Ploy Triangulation Animation on Android.
Stars: ✭ 259 (-28.06%)
Mutual labels:  widget
Pickr
🎨 Flat, simple, multi-themed, responsive and hackable Color-Picker library. No dependencies, no jQuery. Compatible with all CSS Frameworks e.g. Bootstrap, Materialize. Supports alpha channel, rgba, hsla, hsva and more!
Stars: ✭ 3,759 (+944.17%)
Mutual labels:  widget
Gradient Widgets
Flutter widgets wrapped with gradients
Stars: ✭ 290 (-19.44%)
Mutual labels:  widget
Eww
ElKowar's wacky widgets
Stars: ✭ 322 (-10.56%)
Mutual labels:  widget
Timeline list
Timeline widget for flutter
Stars: ✭ 281 (-21.94%)
Mutual labels:  widget
Nbaseuikit
个人平时使用的一些Qt编写的组件(有部分是整合的开源作品,部分是自己原创);
Stars: ✭ 286 (-20.56%)
Mutual labels:  widget
React Native Today Widget
iOS Today Widget in React Native
Stars: ✭ 320 (-11.11%)
Mutual labels:  widget
Colorpicker
jQuery UI widget for color picking (similar to the one in Microsoft Office 2010).
Stars: ✭ 271 (-24.72%)
Mutual labels:  widget
Flutter oktoast
a pure flutter toast library
Stars: ✭ 338 (-6.11%)
Mutual labels:  widget
Gesturelock
a GestureLock that can customize length and style
Stars: ✭ 261 (-27.5%)
Mutual labels:  widget
Supertextview
Hi,Developer,Welcome to use SuperTextView !
Stars: ✭ 3,170 (+780.56%)
Mutual labels:  widget
Flutter radial menu
A simple animated radial menu widget for Flutter.
Stars: ✭ 359 (-0.28%)
Mutual labels:  widget
Stacklayoutmanager
customized layoutmanager,let item pile up like stackview/类似最美有物卡片堆叠效果
Stars: ✭ 343 (-4.72%)
Mutual labels:  widget
Huebee
🐝 1-click color picker
Stars: ✭ 332 (-7.78%)
Mutual labels:  widget

direct-select-flutter

DirectSelect is a selection widget with an ethereal, full-screen modal popup displaying the available choices when the widget is interact with. Inspired by dribble shot.

Made in lanars.com.

pub package Awesome Flutter

iOS

Android

Usage

Create DirectSelectList and fill it with items using itemBuilder

    final dsl = DirectSelectList<String>(
        values: _cities,
        defaultItemIndex: 3,
        itemBuilder: (String value) => getDropDownMenuItem(value),
        focusedItemDecoration: _getDslDecoration(),
        onItemSelectedListener: (item, index, context) {
          Scaffold.of(context).showSnackBar(SnackBar(content: Text(item)));
        });

Create items like this

  DirectSelectItem<String> getDropDownMenuItem(String value) {
    return DirectSelectItem<String>(
        itemHeight: 56,
        value: value,
        itemBuilder: (context, value) {
          return Text(value);
        });
  }

Create decorations for focused items

  _getDslDecoration() {
   return BoxDecoration(
     border: BorderDirectional(
       bottom: BorderSide(width: 1, color: Colors.black12),
       top: BorderSide(width: 1, color: Colors.black12),
     ),
   );
 }

Create DirectSelectContainer and fill it with your data

Scaffold(
      appBar: appBar,
      body: DirectSelectContainer(
        child: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisSize: MainAxisSize.min,
            verticalDirection: VerticalDirection.down,
            children: <Widget>[
              SizedBox(height: 150.0),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Column(
                  children: <Widget>[
                    Container(
                      alignment: AlignmentDirectional.centerStart,
                      margin: EdgeInsets.only(left: 4),
                      child: Text("City"),
                    ),
                    Padding(
                      padding: const EdgeInsets.fromLTRB(0, 8, 0, 0),
                      child: Card(
                        child: Row(
                          mainAxisSize: MainAxisSize.max,
                          children: <Widget>[
                            Expanded(
                                child: Padding(
                                    child: DirectSelectList<String>(
                                                     values: _cities,
                                                     defaultItemIndex: 3,
                                                     itemBuilder: (String value) => getDropDownMenuItem(value),
                                                     focusedItemDecoration: _getDslDecoration(),
                                                     onItemSelectedListener: (item, index, context) {
                                                       Scaffold.of(context).showSnackBar(SnackBar(content: Text(item)));
                                                     }),
                                    padding: EdgeInsets.only(left: 12))),
                            Padding(
                              padding: EdgeInsets.only(right: 8),
                              child: Icon(
                                Icons.unfold_more,
                                color: Colors.black38,
                              ),
                            )
                          ],
                        ),
                         ),
                    ),
                  ],
                ),
              ),
            ],
          ),
        ),
      ),
    );
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].